37void DomUI::read(QXmlStreamReader &reader)
39 const QXmlStreamAttributes &attributes = reader.attributes();
40 for (
const QXmlStreamAttribute &attribute : attributes) {
41 const auto name = attribute.name();
42 if (name == u"version"_s) {
43 setAttributeVersion(attribute.value().toString());
46 if (name == u"language"_s) {
47 setAttributeLanguage(attribute.value().toString());
50 if (name == u"displayname"_s) {
51 setAttributeDisplayname(attribute.value().toString());
54 if (name == u"idbasedtr"_s) {
55 setAttributeIdbasedtr(attribute.value() == u"true"_s);
58 if (name == u"label"_s) {
59 setAttributeLabel(attribute.value().toString());
62 if (name == u"connectslotsbyname"_s) {
63 setAttributeConnectslotsbyname(attribute.value() == u"true"_s);
66 if (name == u"stdsetdef"_s) {
67 setAttributeStdsetdef(attribute.value().toInt());
70 if (name == u"stdSetDef"_s) {
71 setAttributeStdSetDef(attribute.value().toInt());
74 reader.raiseError(
"Unexpected attribute "_L1 + name);
77 while (!reader.hasError()) {
78 switch (reader.readNext()) {
79 case QXmlStreamReader::StartElement : {
80 const auto tag = reader.name();
81 if (!tag.compare(u"author"_s, Qt::CaseInsensitive)) {
82 setElementAuthor(reader.readElementText());
85 if (!tag.compare(u"comment"_s, Qt::CaseInsensitive)
86 || !tag.compare(u"legal"_s, Qt::CaseInsensitive)) {
87 setElementComment(reader.readElementText());
90 if (!tag.compare(u"exportmacro"_s, Qt::CaseInsensitive)) {
91 setElementExportMacro(reader.readElementText());
94 if (!tag.compare(u"class"_s, Qt::CaseInsensitive)) {
95 setElementClass(reader.readElementText());
98 if (!tag.compare(u"widget"_s, Qt::CaseInsensitive)) {
99 auto *v =
new DomWidget();
104 if (!tag.compare(u"layoutdefault"_s, Qt::CaseInsensitive)) {
105 auto *v =
new DomLayoutDefault();
107 setElementLayoutDefault(v);
110 if (!tag.compare(u"layoutfunction"_s, Qt::CaseInsensitive)) {
111 auto *v =
new DomLayoutFunction();
113 setElementLayoutFunction(v);
116 if (!tag.compare(u"pixmapfunction"_s, Qt::CaseInsensitive)) {
117 setElementPixmapFunction(reader.readElementText());
120 if (!tag.compare(u"customwidgets"_s, Qt::CaseInsensitive)) {
121 auto *v =
new DomCustomWidgets();
123 setElementCustomWidgets(v);
126 if (!tag.compare(u"tabstops"_s, Qt::CaseInsensitive)) {
127 auto *v =
new DomTabStops();
129 setElementTabStops(v);
132 if (!tag.compare(u"images"_s, Qt::CaseInsensitive)) {
133 qWarning(
"Omitting deprecated element <images>.");
134 reader.skipCurrentElement();
137 if (!tag.compare(u"includes"_s, Qt::CaseInsensitive)) {
138 auto *v =
new DomIncludes();
140 setElementIncludes(v);
143 if (!tag.compare(u"resources"_s, Qt::CaseInsensitive)) {
144 auto *v =
new DomResources();
146 setElementResources(v);
149 if (!tag.compare(u"connections"_s, Qt::CaseInsensitive)) {
150 auto *v =
new DomConnections();
152 setElementConnections(v);
155 if (!tag.compare(u"designerdata"_s, Qt::CaseInsensitive)) {
156 auto *v =
new DomDesignerData();
158 setElementDesignerdata(v);
161 if (!tag.compare(u"slots"_s, Qt::CaseInsensitive)) {
162 auto *v =
new DomSlots();
167 if (!tag.compare(u"buttongroups"_s, Qt::CaseInsensitive)) {
168 auto *v =
new DomButtonGroups();
170 setElementButtonGroups(v);
173 reader.raiseError(
"Unexpected element "_L1 + tag);
176 case QXmlStreamReader::EndElement :
184void DomUI::write(QXmlStreamWriter &writer,
const QString &tagName)
const
186 writer.writeStartElement(tagName.isEmpty() ?
QStringLiteral(
"ui") : tagName.toLower());
188 if (hasAttributeVersion())
189 writer.writeAttribute(u"version"_s, attributeVersion());
191 if (hasAttributeLanguage())
192 writer.writeAttribute(u"language"_s, attributeLanguage());
194 if (hasAttributeDisplayname())
195 writer.writeAttribute(u"displayname"_s, attributeDisplayname());
197 if (hasAttributeIdbasedtr())
198 writer.writeAttribute(u"idbasedtr"_s, (attributeIdbasedtr() ? u"true"_s : u"false"_s));
200 if (hasAttributeLabel())
201 writer.writeAttribute(u"label"_s, attributeLabel());
203 if (hasAttributeConnectslotsbyname())
204 writer.writeAttribute(u"connectslotsbyname"_s, (attributeConnectslotsbyname() ? u"true"_s : u"false"_s));
206 if (hasAttributeStdsetdef())
207 writer.writeAttribute(u"stdsetdef"_s, QString::number(attributeStdsetdef()));
209 if (hasAttributeStdSetDef())
210 writer.writeAttribute(u"stdsetdef"_s, QString::number(attributeStdSetDef()));
212 if (m_children & Author)
213 writer.writeTextElement(u"author"_s, m_author);
215 if (m_children & Comment)
216 writer.writeTextElement(u"comment"_s, m_comment);
218 if (m_children & ExportMacro)
219 writer.writeTextElement(u"exportmacro"_s, m_exportMacro);
221 if (m_children & Class)
222 writer.writeTextElement(u"class"_s, m_class);
224 if (m_children & Widget)
225 m_widget->write(writer, u"widget"_s);
227 if (m_children & LayoutDefault)
228 m_layoutDefault->write(writer, u"layoutdefault"_s);
230 if (m_children & LayoutFunction)
231 m_layoutFunction->write(writer, u"layoutfunction"_s);
233 if (m_children & PixmapFunction)
234 writer.writeTextElement(u"pixmapfunction"_s, m_pixmapFunction);
236 if (m_children & CustomWidgets)
237 m_customWidgets->write(writer, u"customwidgets"_s);
239 if (m_children & TabStops)
240 m_tabStops->write(writer, u"tabstops"_s);
242 if (m_children & Includes)
243 m_includes->write(writer, u"includes"_s);
245 if (m_children & Resources)
246 m_resources->write(writer, u"resources"_s);
248 if (m_children & Connections)
249 m_connections->write(writer, u"connections"_s);
251 if (m_children & Designerdata)
252 m_designerdata->write(writer, u"designerdata"_s);
254 if (m_children & Slots)
255 m_slots->write(writer, u"slots"_s);
257 if (m_children & ButtonGroups)
258 m_buttonGroups->write(writer, u"buttongroups"_s);
260 writer.writeEndElement();
607void DomInclude::read(QXmlStreamReader &reader)
609 const QXmlStreamAttributes &attributes = reader.attributes();
610 for (
const QXmlStreamAttribute &attribute : attributes) {
611 const auto name = attribute.name();
612 if (name == u"location"_s) {
613 setAttributeLocation(attribute.value().toString());
616 if (name == u"impldecl"_s) {
617 setAttributeImpldecl(attribute.value().toString());
620 reader.raiseError(
"Unexpected attribute "_L1 + name);
623 while (!reader.hasError()) {
624 switch (reader.readNext()) {
625 case QXmlStreamReader::StartElement : {
626 const auto tag = reader.name();
627 reader.raiseError(
"Unexpected element "_L1 + tag);
630 case QXmlStreamReader::EndElement :
632 case QXmlStreamReader::Characters :
633 if (!reader.isWhitespace())
634 m_text.append(reader.text().toString());
767void DomActionGroup::read(QXmlStreamReader &reader)
769 const QXmlStreamAttributes &attributes = reader.attributes();
770 for (
const QXmlStreamAttribute &attribute : attributes) {
771 const auto name = attribute.name();
772 if (name == u"name"_s) {
773 setAttributeName(attribute.value().toString());
776 reader.raiseError(
"Unexpected attribute "_L1 + name);
779 while (!reader.hasError()) {
780 switch (reader.readNext()) {
781 case QXmlStreamReader::StartElement : {
782 const auto tag = reader.name();
783 if (!tag.compare(u"action"_s, Qt::CaseInsensitive)) {
784 auto *v =
new DomAction();
789 if (!tag.compare(u"actiongroup"_s, Qt::CaseInsensitive)) {
790 auto *v =
new DomActionGroup();
792 m_actionGroup.append(v);
795 if (!tag.compare(u"property"_s, Qt::CaseInsensitive)) {
796 auto *v =
new DomProperty();
798 m_property.append(v);
801 if (!tag.compare(u"attribute"_s, Qt::CaseInsensitive)) {
802 auto *v =
new DomProperty();
804 m_attribute.append(v);
807 reader.raiseError(
"Unexpected element "_L1 + tag);
810 case QXmlStreamReader::EndElement :
818void DomActionGroup::write(QXmlStreamWriter &writer,
const QString &tagName)
const
820 writer.writeStartElement(tagName.isEmpty() ?
QStringLiteral(
"actiongroup") : tagName.toLower());
822 if (hasAttributeName())
823 writer.writeAttribute(u"name"_s, attributeName());
825 for (DomAction *v : m_action)
826 v->write(writer, u"action"_s);
828 for (DomActionGroup *v : m_actionGroup)
829 v->write(writer, u"actiongroup"_s);
831 for (DomProperty *v : m_property)
832 v->write(writer, u"property"_s);
834 for (DomProperty *v : m_attribute)
835 v->write(writer, u"attribute"_s);
837 writer.writeEndElement();
915void DomAction::write(QXmlStreamWriter &writer,
const QString &tagName)
const
917 writer.writeStartElement(tagName.isEmpty() ?
QStringLiteral(
"action") : tagName.toLower());
919 if (hasAttributeName())
920 writer.writeAttribute(u"name"_s, attributeName());
922 if (hasAttributeMenu())
923 writer.writeAttribute(u"menu"_s, attributeMenu());
925 for (DomProperty *v : m_property)
926 v->write(writer, u"property"_s);
928 for (DomProperty *v : m_attribute)
929 v->write(writer, u"attribute"_s);
931 writer.writeEndElement();
1204void DomCustomWidget::read(QXmlStreamReader &reader)
1206 while (!reader.hasError()) {
1207 switch (reader.readNext()) {
1208 case QXmlStreamReader::StartElement : {
1209 const auto tag = reader.name();
1210 if (!tag.compare(u"class"_s, Qt::CaseInsensitive)) {
1211 setElementClass(reader.readElementText());
1214 if (!tag.compare(u"extends"_s, Qt::CaseInsensitive)) {
1215 setElementExtends(reader.readElementText());
1218 if (!tag.compare(u"header"_s, Qt::CaseInsensitive)) {
1219 auto *v =
new DomHeader();
1221 setElementHeader(v);
1224 if (!tag.compare(u"sizehint"_s, Qt::CaseInsensitive)) {
1225 auto *v =
new DomSize();
1227 setElementSizeHint(v);
1230 if (!tag.compare(u"addpagemethod"_s, Qt::CaseInsensitive)) {
1231 setElementAddPageMethod(reader.readElementText());
1234 if (!tag.compare(u"container"_s, Qt::CaseInsensitive)) {
1235 setElementContainer(reader.readElementText().toInt());
1238 if (!tag.compare(u"sizepolicy"_s, Qt::CaseInsensitive)) {
1239 qWarning(
"Omitting deprecated element <sizepolicy>.");
1240 reader.skipCurrentElement();
1243 if (!tag.compare(u"pixmap"_s, Qt::CaseInsensitive)) {
1244 setElementPixmap(reader.readElementText());
1247 if (!tag.compare(u"script"_s, Qt::CaseInsensitive)) {
1248 qWarning(
"Omitting deprecated element <script>.");
1249 reader.skipCurrentElement();
1252 if (!tag.compare(u"properties"_s, Qt::CaseInsensitive)) {
1253 qWarning(
"Omitting deprecated element <properties>.");
1254 reader.skipCurrentElement();
1257 if (!tag.compare(u"slots"_s, Qt::CaseInsensitive)) {
1258 auto *v =
new DomSlots();
1263 if (!tag.compare(u"propertyspecifications"_s, Qt::CaseInsensitive)) {
1264 auto *v =
new DomPropertySpecifications();
1266 setElementPropertyspecifications(v);
1269 reader.raiseError(
"Unexpected element "_L1 + tag);
1272 case QXmlStreamReader::EndElement :
1280void DomCustomWidget::write(QXmlStreamWriter &writer,
const QString &tagName)
const
1282 writer.writeStartElement(tagName.isEmpty() ?
QStringLiteral(
"customwidget") : tagName.toLower());
1284 if (m_children & Class)
1285 writer.writeTextElement(u"class"_s, m_class);
1287 if (m_children & Extends)
1288 writer.writeTextElement(u"extends"_s, m_extends);
1290 if (m_children & Header)
1291 m_header->write(writer, u"header"_s);
1293 if (m_children & SizeHint)
1294 m_sizeHint->write(writer, u"sizehint"_s);
1296 if (m_children & AddPageMethod)
1297 writer.writeTextElement(u"addpagemethod"_s, m_addPageMethod);
1299 if (m_children & Container)
1300 writer.writeTextElement(u"container"_s, QString::number(m_container));
1302 if (m_children & Pixmap)
1303 writer.writeTextElement(u"pixmap"_s, m_pixmap);
1305 if (m_children & Slots)
1306 m_slots->write(writer, u"slots"_s);
1308 if (m_children & Propertyspecifications)
1309 m_propertyspecifications->write(writer, u"propertyspecifications"_s);
1311 writer.writeEndElement();
1601void DomLayout::read(QXmlStreamReader &reader)
1603 const QXmlStreamAttributes &attributes = reader.attributes();
1604 for (
const QXmlStreamAttribute &attribute : attributes) {
1605 const auto name = attribute.name();
1606 if (name == u"class"_s) {
1607 setAttributeClass(attribute.value().toString());
1610 if (name == u"name"_s) {
1611 setAttributeName(attribute.value().toString());
1614 if (name == u"stretch"_s) {
1615 setAttributeStretch(attribute.value().toString());
1618 if (name == u"rowstretch"_s) {
1619 setAttributeRowStretch(attribute.value().toString());
1622 if (name == u"columnstretch"_s) {
1623 setAttributeColumnStretch(attribute.value().toString());
1626 if (name == u"rowminimumheight"_s) {
1627 setAttributeRowMinimumHeight(attribute.value().toString());
1630 if (name == u"columnminimumwidth"_s) {
1631 setAttributeColumnMinimumWidth(attribute.value().toString());
1634 reader.raiseError(
"Unexpected attribute "_L1 + name);
1637 while (!reader.hasError()) {
1638 switch (reader.readNext()) {
1639 case QXmlStreamReader::StartElement : {
1640 const auto tag = reader.name();
1641 if (!tag.compare(u"property"_s, Qt::CaseInsensitive)) {
1642 auto *v =
new DomProperty();
1644 m_property.append(v);
1647 if (!tag.compare(u"attribute"_s, Qt::CaseInsensitive)) {
1648 auto *v =
new DomProperty();
1650 m_attribute.append(v);
1653 if (!tag.compare(u"item"_s, Qt::CaseInsensitive)) {
1654 auto *v =
new DomLayoutItem();
1659 reader.raiseError(
"Unexpected element "_L1 + tag);
1662 case QXmlStreamReader::EndElement :
1670void DomLayout::write(QXmlStreamWriter &writer,
const QString &tagName)
const
1672 writer.writeStartElement(tagName.isEmpty() ?
QStringLiteral(
"layout") : tagName.toLower());
1674 if (hasAttributeClass())
1675 writer.writeAttribute(u"class"_s, attributeClass());
1677 if (hasAttributeName())
1678 writer.writeAttribute(u"name"_s, attributeName());
1680 if (hasAttributeStretch())
1681 writer.writeAttribute(u"stretch"_s, attributeStretch());
1683 if (hasAttributeRowStretch())
1684 writer.writeAttribute(u"rowstretch"_s, attributeRowStretch());
1686 if (hasAttributeColumnStretch())
1687 writer.writeAttribute(u"columnstretch"_s, attributeColumnStretch());
1689 if (hasAttributeRowMinimumHeight())
1690 writer.writeAttribute(u"rowminimumheight"_s, attributeRowMinimumHeight());
1692 if (hasAttributeColumnMinimumWidth())
1693 writer.writeAttribute(u"columnminimumwidth"_s, attributeColumnMinimumWidth());
1695 for (DomProperty *v : m_property)
1696 v->write(writer, u"property"_s);
1698 for (DomProperty *v : m_attribute)
1699 v->write(writer, u"attribute"_s);
1701 for (DomLayoutItem *v : m_item)
1702 v->write(writer, u"item"_s);
1704 writer.writeEndElement();
1745void DomLayoutItem::read(QXmlStreamReader &reader)
1747 const QXmlStreamAttributes &attributes = reader.attributes();
1748 for (
const QXmlStreamAttribute &attribute : attributes) {
1749 const auto name = attribute.name();
1750 if (name == u"row"_s) {
1751 setAttributeRow(attribute.value().toInt());
1754 if (name == u"column"_s) {
1755 setAttributeColumn(attribute.value().toInt());
1758 if (name == u"rowspan"_s) {
1759 setAttributeRowSpan(attribute.value().toInt());
1762 if (name == u"colspan"_s) {
1763 setAttributeColSpan(attribute.value().toInt());
1766 if (name == u"alignment"_s) {
1767 setAttributeAlignment(attribute.value().toString());
1770 reader.raiseError(
"Unexpected attribute "_L1 + name);
1773 while (!reader.hasError()) {
1774 switch (reader.readNext()) {
1775 case QXmlStreamReader::StartElement : {
1776 const auto tag = reader.name();
1777 if (!tag.compare(u"widget"_s, Qt::CaseInsensitive)) {
1778 auto *v =
new DomWidget();
1780 setElementWidget(v);
1783 if (!tag.compare(u"layout"_s, Qt::CaseInsensitive)) {
1784 auto *v =
new DomLayout();
1786 setElementLayout(v);
1789 if (!tag.compare(u"spacer"_s, Qt::CaseInsensitive)) {
1790 auto *v =
new DomSpacer();
1792 setElementSpacer(v);
1795 reader.raiseError(
"Unexpected element "_L1 + tag);
1798 case QXmlStreamReader::EndElement :
1806void DomLayoutItem::write(QXmlStreamWriter &writer,
const QString &tagName)
const
1808 writer.writeStartElement(tagName.isEmpty() ?
QStringLiteral(
"layoutitem") : tagName.toLower());
1810 if (hasAttributeRow())
1811 writer.writeAttribute(u"row"_s, QString::number(attributeRow()));
1813 if (hasAttributeColumn())
1814 writer.writeAttribute(u"column"_s, QString::number(attributeColumn()));
1816 if (hasAttributeRowSpan())
1817 writer.writeAttribute(u"rowspan"_s, QString::number(attributeRowSpan()));
1819 if (hasAttributeColSpan())
1820 writer.writeAttribute(u"colspan"_s, QString::number(attributeColSpan()));
1822 if (hasAttributeAlignment())
1823 writer.writeAttribute(u"alignment"_s, attributeAlignment());
1827 if (m_widget !=
nullptr)
1828 m_widget->write(writer, u"widget"_s);
1832 if (m_layout !=
nullptr)
1833 m_layout->write(writer, u"layout"_s);
1837 if (m_spacer !=
nullptr)
1838 m_spacer->write(writer, u"spacer"_s);
1844 writer.writeEndElement();
2087void DomWidget::read(QXmlStreamReader &reader)
2089 const QXmlStreamAttributes &attributes = reader.attributes();
2090 for (
const QXmlStreamAttribute &attribute : attributes) {
2091 const auto name = attribute.name();
2092 if (name == u"class"_s) {
2093 setAttributeClass(attribute.value().toString());
2096 if (name == u"name"_s) {
2097 setAttributeName(attribute.value().toString());
2100 if (name == u"native"_s) {
2101 setAttributeNative(attribute.value() == u"true"_s);
2104 reader.raiseError(
"Unexpected attribute "_L1 + name);
2107 while (!reader.hasError()) {
2108 switch (reader.readNext()) {
2109 case QXmlStreamReader::StartElement : {
2110 const auto tag = reader.name();
2111 if (!tag.compare(u"class"_s, Qt::CaseInsensitive)) {
2112 m_class.append(reader.readElementText());
2115 if (!tag.compare(u"property"_s, Qt::CaseInsensitive)) {
2116 auto *v =
new DomProperty();
2118 m_property.append(v);
2121 if (!tag.compare(u"script"_s, Qt::CaseInsensitive)) {
2122 qWarning(
"Omitting deprecated element <script>.");
2123 reader.skipCurrentElement();
2126 if (!tag.compare(u"widgetdata"_s, Qt::CaseInsensitive)) {
2127 qWarning(
"Omitting deprecated element <widgetdata>.");
2128 reader.skipCurrentElement();
2131 if (!tag.compare(u"attribute"_s, Qt::CaseInsensitive)) {
2132 auto *v =
new DomProperty();
2134 m_attribute.append(v);
2137 if (!tag.compare(u"row"_s, Qt::CaseInsensitive)) {
2138 auto *v =
new DomRow();
2143 if (!tag.compare(u"column"_s, Qt::CaseInsensitive)) {
2144 auto *v =
new DomColumn();
2149 if (!tag.compare(u"item"_s, Qt::CaseInsensitive)) {
2150 auto *v =
new DomItem();
2155 if (!tag.compare(u"layout"_s, Qt::CaseInsensitive)) {
2156 auto *v =
new DomLayout();
2161 if (!tag.compare(u"widget"_s, Qt::CaseInsensitive)) {
2162 auto *v =
new DomWidget();
2167 if (!tag.compare(u"action"_s, Qt::CaseInsensitive)) {
2168 auto *v =
new DomAction();
2173 if (!tag.compare(u"actiongroup"_s, Qt::CaseInsensitive)) {
2174 auto *v =
new DomActionGroup();
2176 m_actionGroup.append(v);
2179 if (!tag.compare(u"addaction"_s, Qt::CaseInsensitive)) {
2180 auto *v =
new DomActionRef();
2182 m_addAction.append(v);
2185 if (!tag.compare(u"zorder"_s, Qt::CaseInsensitive)) {
2186 m_zOrder.append(reader.readElementText());
2189 reader.raiseError(
"Unexpected element "_L1 + tag);
2192 case QXmlStreamReader::EndElement :
2200void DomWidget::write(QXmlStreamWriter &writer,
const QString &tagName)
const
2202 writer.writeStartElement(tagName.isEmpty() ?
QStringLiteral(
"widget") : tagName.toLower());
2204 if (hasAttributeClass())
2205 writer.writeAttribute(u"class"_s, attributeClass());
2207 if (hasAttributeName())
2208 writer.writeAttribute(u"name"_s, attributeName());
2210 if (hasAttributeNative())
2211 writer.writeAttribute(u"native"_s, (attributeNative() ? u"true"_s : u"false"_s));
2213 for (
const QString &v : m_class)
2214 writer.writeTextElement(u"class"_s, v);
2216 for (DomProperty *v : m_property)
2217 v->write(writer, u"property"_s);
2219 for (DomProperty *v : m_attribute)
2220 v->write(writer, u"attribute"_s);
2222 for (DomRow *v : m_row)
2223 v->write(writer, u"row"_s);
2225 for (DomColumn *v : m_column)
2226 v->write(writer, u"column"_s);
2228 for (DomItem *v : m_item)
2229 v->write(writer, u"item"_s);
2231 for (DomLayout *v : m_layout)
2232 v->write(writer, u"layout"_s);
2234 for (DomWidget *v : m_widget)
2235 v->write(writer, u"widget"_s);
2237 for (DomAction *v : m_action)
2238 v->write(writer, u"action"_s);
2240 for (DomActionGroup *v : m_actionGroup)
2241 v->write(writer, u"actiongroup"_s);
2243 for (DomActionRef *v : m_addAction)
2244 v->write(writer, u"addaction"_s);
2246 for (
const QString &v : m_zOrder)
2247 writer.writeTextElement(u"zorder"_s, v);
2249 writer.writeEndElement();
2384void DomColor::read(QXmlStreamReader &reader)
2386 const QXmlStreamAttributes &attributes = reader.attributes();
2387 for (
const QXmlStreamAttribute &attribute : attributes) {
2388 const auto name = attribute.name();
2389 if (name == u"alpha"_s) {
2390 setAttributeAlpha(attribute.value().toInt());
2393 reader.raiseError(
"Unexpected attribute "_L1 + name);
2396 while (!reader.hasError()) {
2397 switch (reader.readNext()) {
2398 case QXmlStreamReader::StartElement : {
2399 const auto tag = reader.name();
2400 if (!tag.compare(u"red"_s, Qt::CaseInsensitive)) {
2401 setElementRed(reader.readElementText().toInt());
2404 if (!tag.compare(u"green"_s, Qt::CaseInsensitive)) {
2405 setElementGreen(reader.readElementText().toInt());
2408 if (!tag.compare(u"blue"_s, Qt::CaseInsensitive)) {
2409 setElementBlue(reader.readElementText().toInt());
2412 reader.raiseError(
"Unexpected element "_L1 + tag);
2415 case QXmlStreamReader::EndElement :
2554void DomGradient::read(QXmlStreamReader &reader)
2556 const QXmlStreamAttributes &attributes = reader.attributes();
2557 for (
const QXmlStreamAttribute &attribute : attributes) {
2558 const auto name = attribute.name();
2559 if (name == u"startx"_s) {
2560 setAttributeStartX(attribute.value().toDouble());
2563 if (name == u"starty"_s) {
2564 setAttributeStartY(attribute.value().toDouble());
2567 if (name == u"endx"_s) {
2568 setAttributeEndX(attribute.value().toDouble());
2571 if (name == u"endy"_s) {
2572 setAttributeEndY(attribute.value().toDouble());
2575 if (name == u"centralx"_s) {
2576 setAttributeCentralX(attribute.value().toDouble());
2579 if (name == u"centraly"_s) {
2580 setAttributeCentralY(attribute.value().toDouble());
2583 if (name == u"focalx"_s) {
2584 setAttributeFocalX(attribute.value().toDouble());
2587 if (name == u"focaly"_s) {
2588 setAttributeFocalY(attribute.value().toDouble());
2591 if (name == u"radius"_s) {
2592 setAttributeRadius(attribute.value().toDouble());
2595 if (name == u"angle"_s) {
2596 setAttributeAngle(attribute.value().toDouble());
2599 if (name == u"type"_s) {
2600 setAttributeType(attribute.value().toString());
2603 if (name == u"spread"_s) {
2604 setAttributeSpread(attribute.value().toString());
2607 if (name == u"coordinatemode"_s) {
2608 setAttributeCoordinateMode(attribute.value().toString());
2611 reader.raiseError(
"Unexpected attribute "_L1 + name);
2614 while (!reader.hasError()) {
2615 switch (reader.readNext()) {
2616 case QXmlStreamReader::StartElement : {
2617 const auto tag = reader.name();
2618 if (!tag.compare(u"gradientstop"_s, Qt::CaseInsensitive)) {
2619 auto *v =
new DomGradientStop();
2621 m_gradientStop.append(v);
2624 reader.raiseError(
"Unexpected element "_L1 + tag);
2627 case QXmlStreamReader::EndElement :
2635void DomGradient::write(QXmlStreamWriter &writer,
const QString &tagName)
const
2637 writer.writeStartElement(tagName.isEmpty() ?
QStringLiteral(
"gradient") : tagName.toLower());
2639 if (hasAttributeStartX())
2640 writer.writeAttribute(u"startx"_s, QString::number(attributeStartX(),
'f', 15));
2642 if (hasAttributeStartY())
2643 writer.writeAttribute(u"starty"_s, QString::number(attributeStartY(),
'f', 15));
2645 if (hasAttributeEndX())
2646 writer.writeAttribute(u"endx"_s, QString::number(attributeEndX(),
'f', 15));
2648 if (hasAttributeEndY())
2649 writer.writeAttribute(u"endy"_s, QString::number(attributeEndY(),
'f', 15));
2651 if (hasAttributeCentralX())
2652 writer.writeAttribute(u"centralx"_s, QString::number(attributeCentralX(),
'f', 15));
2654 if (hasAttributeCentralY())
2655 writer.writeAttribute(u"centraly"_s, QString::number(attributeCentralY(),
'f', 15));
2657 if (hasAttributeFocalX())
2658 writer.writeAttribute(u"focalx"_s, QString::number(attributeFocalX(),
'f', 15));
2660 if (hasAttributeFocalY())
2661 writer.writeAttribute(u"focaly"_s, QString::number(attributeFocalY(),
'f', 15));
2663 if (hasAttributeRadius())
2664 writer.writeAttribute(u"radius"_s, QString::number(attributeRadius(),
'f', 15));
2666 if (hasAttributeAngle())
2667 writer.writeAttribute(u"angle"_s, QString::number(attributeAngle(),
'f', 15));
2669 if (hasAttributeType())
2670 writer.writeAttribute(u"type"_s, attributeType());
2672 if (hasAttributeSpread())
2673 writer.writeAttribute(u"spread"_s, attributeSpread());
2675 if (hasAttributeCoordinateMode())
2676 writer.writeAttribute(u"coordinatemode"_s, attributeCoordinateMode());
2678 for (DomGradientStop *v : m_gradientStop)
2679 v->write(writer, u"gradientstop"_s);
2681 writer.writeEndElement();
2710void DomBrush::read(QXmlStreamReader &reader)
2712 const QXmlStreamAttributes &attributes = reader.attributes();
2713 for (
const QXmlStreamAttribute &attribute : attributes) {
2714 const auto name = attribute.name();
2715 if (name == u"brushstyle"_s) {
2716 setAttributeBrushStyle(attribute.value().toString());
2719 reader.raiseError(
"Unexpected attribute "_L1 + name);
2722 while (!reader.hasError()) {
2723 switch (reader.readNext()) {
2724 case QXmlStreamReader::StartElement : {
2725 const auto tag = reader.name();
2726 if (!tag.compare(u"color"_s, Qt::CaseInsensitive)) {
2727 auto *v =
new DomColor();
2732 if (!tag.compare(u"texture"_s, Qt::CaseInsensitive)) {
2733 auto *v =
new DomProperty();
2735 setElementTexture(v);
2738 if (!tag.compare(u"gradient"_s, Qt::CaseInsensitive)) {
2739 auto *v =
new DomGradient();
2741 setElementGradient(v);
2744 reader.raiseError(
"Unexpected element "_L1 + tag);
2747 case QXmlStreamReader::EndElement :
3087void DomFont::read(QXmlStreamReader &reader)
3089 while (!reader.hasError()) {
3090 switch (reader.readNext()) {
3091 case QXmlStreamReader::StartElement : {
3092 const auto tag = reader.name();
3093 if (!tag.compare(u"family"_s, Qt::CaseInsensitive)) {
3094 setElementFamily(reader.readElementText());
3097 if (!tag.compare(u"pointsize"_s, Qt::CaseInsensitive)) {
3098 setElementPointSize(reader.readElementText().toInt());
3101 if (!tag.compare(u"weight"_s, Qt::CaseInsensitive)) {
3102 setElementWeight(reader.readElementText().toInt());
3105 if (!tag.compare(u"italic"_s, Qt::CaseInsensitive)) {
3106 setElementItalic(reader.readElementText() == u"true"_s);
3109 if (!tag.compare(u"bold"_s, Qt::CaseInsensitive)) {
3110 setElementBold(reader.readElementText() == u"true"_s);
3113 if (!tag.compare(u"underline"_s, Qt::CaseInsensitive)) {
3114 setElementUnderline(reader.readElementText() == u"true"_s);
3117 if (!tag.compare(u"strikeout"_s, Qt::CaseInsensitive)) {
3118 setElementStrikeOut(reader.readElementText() == u"true"_s);
3121 if (!tag.compare(u"antialiasing"_s, Qt::CaseInsensitive)) {
3122 setElementAntialiasing(reader.readElementText() == u"true"_s);
3125 if (!tag.compare(u"stylestrategy"_s, Qt::CaseInsensitive)) {
3126 setElementStyleStrategy(reader.readElementText());
3129 if (!tag.compare(u"kerning"_s, Qt::CaseInsensitive)) {
3130 setElementKerning(reader.readElementText() == u"true"_s);
3133 if (!tag.compare(u"hintingpreference"_s, Qt::CaseInsensitive)) {
3134 setElementHintingPreference(reader.readElementText());
3137 if (!tag.compare(u"fontweight"_s, Qt::CaseInsensitive)) {
3138 setElementFontWeight(reader.readElementText());
3141 reader.raiseError(
"Unexpected element "_L1 + tag);
3144 case QXmlStreamReader::EndElement :
3152void DomFont::write(QXmlStreamWriter &writer,
const QString &tagName)
const
3154 writer.writeStartElement(tagName.isEmpty() ?
QStringLiteral(
"font") : tagName.toLower());
3156 if (m_children & Family)
3157 writer.writeTextElement(u"family"_s, m_family);
3159 if (m_children & PointSize)
3160 writer.writeTextElement(u"pointsize"_s, QString::number(m_pointSize));
3162 if (m_children & Weight)
3163 writer.writeTextElement(u"weight"_s, QString::number(m_weight));
3165 if (m_children & Italic)
3166 writer.writeTextElement(u"italic"_s, (m_italic ? u"true"_s : u"false"_s));
3168 if (m_children & Bold)
3169 writer.writeTextElement(u"bold"_s, (m_bold ? u"true"_s : u"false"_s));
3171 if (m_children & Underline)
3172 writer.writeTextElement(u"underline"_s, (m_underline ? u"true"_s : u"false"_s));
3174 if (m_children & StrikeOut)
3175 writer.writeTextElement(u"strikeout"_s, (m_strikeOut ? u"true"_s : u"false"_s));
3177 if (m_children & Antialiasing)
3178 writer.writeTextElement(u"antialiasing"_s, (m_antialiasing ? u"true"_s : u"false"_s));
3180 if (m_children & StyleStrategy)
3181 writer.writeTextElement(u"stylestrategy"_s, m_styleStrategy);
3183 if (m_children & Kerning)
3184 writer.writeTextElement(u"kerning"_s, (m_kerning ? u"true"_s : u"false"_s));
3186 if (m_children & HintingPreference)
3187 writer.writeTextElement(u"hintingpreference"_s, m_hintingPreference);
3189 if (m_children & FontWeight)
3190 writer.writeTextElement(u"fontweight"_s, m_fontWeight);
3192 writer.writeEndElement();
3391void DomRect::read(QXmlStreamReader &reader)
3393 while (!reader.hasError()) {
3394 switch (reader.readNext()) {
3395 case QXmlStreamReader::StartElement : {
3396 const auto tag = reader.name();
3397 if (!tag.compare(u"x"_s, Qt::CaseInsensitive)) {
3398 setElementX(reader.readElementText().toInt());
3401 if (!tag.compare(u"y"_s, Qt::CaseInsensitive)) {
3402 setElementY(reader.readElementText().toInt());
3405 if (!tag.compare(u"width"_s, Qt::CaseInsensitive)) {
3406 setElementWidth(reader.readElementText().toInt());
3409 if (!tag.compare(u"height"_s, Qt::CaseInsensitive)) {
3410 setElementHeight(reader.readElementText().toInt());
3413 reader.raiseError(
"Unexpected element "_L1 + tag);
3416 case QXmlStreamReader::EndElement :
3535void DomSizePolicy::read(QXmlStreamReader &reader)
3537 const QXmlStreamAttributes &attributes = reader.attributes();
3538 for (
const QXmlStreamAttribute &attribute : attributes) {
3539 const auto name = attribute.name();
3540 if (name == u"hsizetype"_s) {
3541 setAttributeHSizeType(attribute.value().toString());
3544 if (name == u"vsizetype"_s) {
3545 setAttributeVSizeType(attribute.value().toString());
3548 reader.raiseError(
"Unexpected attribute "_L1 + name);
3551 while (!reader.hasError()) {
3552 switch (reader.readNext()) {
3553 case QXmlStreamReader::StartElement : {
3554 const auto tag = reader.name();
3555 if (!tag.compare(u"hsizetype"_s, Qt::CaseInsensitive)) {
3556 setElementHSizeType(reader.readElementText().toInt());
3559 if (!tag.compare(u"vsizetype"_s, Qt::CaseInsensitive)) {
3560 setElementVSizeType(reader.readElementText().toInt());
3563 if (!tag.compare(u"horstretch"_s, Qt::CaseInsensitive)) {
3564 setElementHorStretch(reader.readElementText().toInt());
3567 if (!tag.compare(u"verstretch"_s, Qt::CaseInsensitive)) {
3568 setElementVerStretch(reader.readElementText().toInt());
3571 reader.raiseError(
"Unexpected element "_L1 + tag);
3574 case QXmlStreamReader::EndElement :
3582void DomSizePolicy::write(QXmlStreamWriter &writer,
const QString &tagName)
const
3584 writer.writeStartElement(tagName.isEmpty() ?
QStringLiteral(
"sizepolicy") : tagName.toLower());
3586 if (hasAttributeHSizeType())
3587 writer.writeAttribute(u"hsizetype"_s, attributeHSizeType());
3589 if (hasAttributeVSizeType())
3590 writer.writeAttribute(u"vsizetype"_s, attributeVSizeType());
3592 if (m_children & HSizeType)
3593 writer.writeTextElement(u"hsizetype"_s, QString::number(m_hSizeType));
3595 if (m_children & VSizeType)
3596 writer.writeTextElement(u"vsizetype"_s, QString::number(m_vSizeType));
3598 if (m_children & HorStretch)
3599 writer.writeTextElement(u"horstretch"_s, QString::number(m_horStretch));
3601 if (m_children & VerStretch)
3602 writer.writeTextElement(u"verstretch"_s, QString::number(m_verStretch));
3604 writer.writeEndElement();
3715void DomDate::read(QXmlStreamReader &reader)
3717 while (!reader.hasError()) {
3718 switch (reader.readNext()) {
3719 case QXmlStreamReader::StartElement : {
3720 const auto tag = reader.name();
3721 if (!tag.compare(u"year"_s, Qt::CaseInsensitive)) {
3722 setElementYear(reader.readElementText().toInt());
3725 if (!tag.compare(u"month"_s, Qt::CaseInsensitive)) {
3726 setElementMonth(reader.readElementText().toInt());
3729 if (!tag.compare(u"day"_s, Qt::CaseInsensitive)) {
3730 setElementDay(reader.readElementText().toInt());
3733 reader.raiseError(
"Unexpected element "_L1 + tag);
3736 case QXmlStreamReader::EndElement :
3795void DomTime::read(QXmlStreamReader &reader)
3797 while (!reader.hasError()) {
3798 switch (reader.readNext()) {
3799 case QXmlStreamReader::StartElement : {
3800 const auto tag = reader.name();
3801 if (!tag.compare(u"hour"_s, Qt::CaseInsensitive)) {
3802 setElementHour(reader.readElementText().toInt());
3805 if (!tag.compare(u"minute"_s, Qt::CaseInsensitive)) {
3806 setElementMinute(reader.readElementText().toInt());
3809 if (!tag.compare(u"second"_s, Qt::CaseInsensitive)) {
3810 setElementSecond(reader.readElementText().toInt());
3813 reader.raiseError(
"Unexpected element "_L1 + tag);
3816 case QXmlStreamReader::EndElement :
3875void DomDateTime::read(QXmlStreamReader &reader)
3877 while (!reader.hasError()) {
3878 switch (reader.readNext()) {
3879 case QXmlStreamReader::StartElement : {
3880 const auto tag = reader.name();
3881 if (!tag.compare(u"hour"_s, Qt::CaseInsensitive)) {
3882 setElementHour(reader.readElementText().toInt());
3885 if (!tag.compare(u"minute"_s, Qt::CaseInsensitive)) {
3886 setElementMinute(reader.readElementText().toInt());
3889 if (!tag.compare(u"second"_s, Qt::CaseInsensitive)) {
3890 setElementSecond(reader.readElementText().toInt());
3893 if (!tag.compare(u"year"_s, Qt::CaseInsensitive)) {
3894 setElementYear(reader.readElementText().toInt());
3897 if (!tag.compare(u"month"_s, Qt::CaseInsensitive)) {
3898 setElementMonth(reader.readElementText().toInt());
3901 if (!tag.compare(u"day"_s, Qt::CaseInsensitive)) {
3902 setElementDay(reader.readElementText().toInt());
3905 reader.raiseError(
"Unexpected element "_L1 + tag);
3908 case QXmlStreamReader::EndElement :
3916void DomDateTime::write(QXmlStreamWriter &writer,
const QString &tagName)
const
3918 writer.writeStartElement(tagName.isEmpty() ?
QStringLiteral(
"datetime") : tagName.toLower());
3920 if (m_children & Hour)
3921 writer.writeTextElement(u"hour"_s, QString::number(m_hour));
3923 if (m_children & Minute)
3924 writer.writeTextElement(u"minute"_s, QString::number(m_minute));
3926 if (m_children & Second)
3927 writer.writeTextElement(u"second"_s, QString::number(m_second));
3929 if (m_children & Year)
3930 writer.writeTextElement(u"year"_s, QString::number(m_year));
3932 if (m_children & Month)
3933 writer.writeTextElement(u"month"_s, QString::number(m_month));
3935 if (m_children & Day)
3936 writer.writeTextElement(u"day"_s, QString::number(m_day));
3938 writer.writeEndElement();
4012void DomStringList::read(QXmlStreamReader &reader)
4014 const QXmlStreamAttributes &attributes = reader.attributes();
4015 for (
const QXmlStreamAttribute &attribute : attributes) {
4016 const auto name = attribute.name();
4017 if (name == u"notr"_s) {
4018 setAttributeNotr(attribute.value().toString());
4021 if (name == u"comment"_s) {
4022 setAttributeComment(attribute.value().toString());
4025 if (name == u"extracomment"_s) {
4026 setAttributeExtraComment(attribute.value().toString());
4029 if (name == u"id"_s) {
4030 setAttributeId(attribute.value().toString());
4033 reader.raiseError(
"Unexpected attribute "_L1 + name);
4036 while (!reader.hasError()) {
4037 switch (reader.readNext()) {
4038 case QXmlStreamReader::StartElement : {
4039 const auto tag = reader.name();
4040 if (!tag.compare(u"string"_s, Qt::CaseInsensitive)) {
4041 m_string.append(reader.readElementText());
4044 reader.raiseError(
"Unexpected element "_L1 + tag);
4047 case QXmlStreamReader::EndElement :
4055void DomStringList::write(QXmlStreamWriter &writer,
const QString &tagName)
const
4057 writer.writeStartElement(tagName.isEmpty() ?
QStringLiteral(
"stringlist") : tagName.toLower());
4059 if (hasAttributeNotr())
4060 writer.writeAttribute(u"notr"_s, attributeNotr());
4062 if (hasAttributeComment())
4063 writer.writeAttribute(u"comment"_s, attributeComment());
4065 if (hasAttributeExtraComment())
4066 writer.writeAttribute(u"extracomment"_s, attributeExtraComment());
4068 if (hasAttributeId())
4069 writer.writeAttribute(u"id"_s, attributeId());
4071 for (
const QString &v : m_string)
4072 writer.writeTextElement(u"string"_s, v);
4074 writer.writeEndElement();
4148void DomResourceIcon::read(QXmlStreamReader &reader)
4150 const QXmlStreamAttributes &attributes = reader.attributes();
4151 for (
const QXmlStreamAttribute &attribute : attributes) {
4152 const auto name = attribute.name();
4153 if (name == u"theme"_s) {
4154 setAttributeTheme(attribute.value().toString());
4157 if (name == u"resource"_s) {
4158 setAttributeResource(attribute.value().toString());
4161 reader.raiseError(
"Unexpected attribute "_L1 + name);
4164 while (!reader.hasError()) {
4165 switch (reader.readNext()) {
4166 case QXmlStreamReader::StartElement : {
4167 const auto tag = reader.name();
4168 if (!tag.compare(u"normaloff"_s, Qt::CaseInsensitive)) {
4169 auto *v =
new DomResourcePixmap();
4171 setElementNormalOff(v);
4174 if (!tag.compare(u"normalon"_s, Qt::CaseInsensitive)) {
4175 auto *v =
new DomResourcePixmap();
4177 setElementNormalOn(v);
4180 if (!tag.compare(u"disabledoff"_s, Qt::CaseInsensitive)) {
4181 auto *v =
new DomResourcePixmap();
4183 setElementDisabledOff(v);
4186 if (!tag.compare(u"disabledon"_s, Qt::CaseInsensitive)) {
4187 auto *v =
new DomResourcePixmap();
4189 setElementDisabledOn(v);
4192 if (!tag.compare(u"activeoff"_s, Qt::CaseInsensitive)) {
4193 auto *v =
new DomResourcePixmap();
4195 setElementActiveOff(v);
4198 if (!tag.compare(u"activeon"_s, Qt::CaseInsensitive)) {
4199 auto *v =
new DomResourcePixmap();
4201 setElementActiveOn(v);
4204 if (!tag.compare(u"selectedoff"_s, Qt::CaseInsensitive)) {
4205 auto *v =
new DomResourcePixmap();
4207 setElementSelectedOff(v);
4210 if (!tag.compare(u"selectedon"_s, Qt::CaseInsensitive)) {
4211 auto *v =
new DomResourcePixmap();
4213 setElementSelectedOn(v);
4216 reader.raiseError(
"Unexpected element "_L1 + tag);
4219 case QXmlStreamReader::EndElement :
4221 case QXmlStreamReader::Characters :
4222 if (!reader.isWhitespace())
4223 m_text.append(reader.text().toString());
4231void DomResourceIcon::write(QXmlStreamWriter &writer,
const QString &tagName)
const
4233 writer.writeStartElement(tagName.isEmpty() ?
QStringLiteral(
"resourceicon") : tagName.toLower());
4235 if (hasAttributeTheme())
4236 writer.writeAttribute(u"theme"_s, attributeTheme());
4238 if (hasAttributeResource())
4239 writer.writeAttribute(u"resource"_s, attributeResource());
4241 if (m_children & NormalOff)
4242 m_normalOff->write(writer, u"normaloff"_s);
4244 if (m_children & NormalOn)
4245 m_normalOn->write(writer, u"normalon"_s);
4247 if (m_children & DisabledOff)
4248 m_disabledOff->write(writer, u"disabledoff"_s);
4250 if (m_children & DisabledOn)
4251 m_disabledOn->write(writer, u"disabledon"_s);
4253 if (m_children & ActiveOff)
4254 m_activeOff->write(writer, u"activeoff"_s);
4256 if (m_children & ActiveOn)
4257 m_activeOn->write(writer, u"activeon"_s);
4259 if (m_children & SelectedOff)
4260 m_selectedOff->write(writer, u"selectedoff"_s);
4262 if (m_children & SelectedOn)
4263 m_selectedOn->write(writer, u"selectedon"_s);
4265 if (!m_text.isEmpty())
4266 writer.writeCharacters(m_text);
4268 writer.writeEndElement();
4449void DomString::read(QXmlStreamReader &reader)
4451 const QXmlStreamAttributes &attributes = reader.attributes();
4452 for (
const QXmlStreamAttribute &attribute : attributes) {
4453 const auto name = attribute.name();
4454 if (name == u"notr"_s) {
4455 setAttributeNotr(attribute.value().toString());
4458 if (name == u"comment"_s) {
4459 setAttributeComment(attribute.value().toString());
4462 if (name == u"extracomment"_s) {
4463 setAttributeExtraComment(attribute.value().toString());
4466 if (name == u"id"_s) {
4467 setAttributeId(attribute.value().toString());
4470 reader.raiseError(
"Unexpected attribute "_L1 + name);
4473 while (!reader.hasError()) {
4474 switch (reader.readNext()) {
4475 case QXmlStreamReader::StartElement : {
4476 const auto tag = reader.name();
4477 reader.raiseError(
"Unexpected element "_L1 + tag);
4480 case QXmlStreamReader::EndElement :
4482 case QXmlStreamReader::Characters :
4483 if (!reader.isWhitespace())
4484 m_text.append(reader.text().toString());
4492void DomString::write(QXmlStreamWriter &writer,
const QString &tagName)
const
4494 writer.writeStartElement(tagName.isEmpty() ?
QStringLiteral(
"string") : tagName.toLower());
4496 if (hasAttributeNotr())
4497 writer.writeAttribute(u"notr"_s, attributeNotr());
4499 if (hasAttributeComment())
4500 writer.writeAttribute(u"comment"_s, attributeComment());
4502 if (hasAttributeExtraComment())
4503 writer.writeAttribute(u"extracomment"_s, attributeExtraComment());
4505 if (hasAttributeId())
4506 writer.writeAttribute(u"id"_s, attributeId());
4508 if (!m_text.isEmpty())
4509 writer.writeCharacters(m_text);
4511 writer.writeEndElement();
4578void DomRectF::read(QXmlStreamReader &reader)
4580 while (!reader.hasError()) {
4581 switch (reader.readNext()) {
4582 case QXmlStreamReader::StartElement : {
4583 const auto tag = reader.name();
4584 if (!tag.compare(u"x"_s, Qt::CaseInsensitive)) {
4585 setElementX(reader.readElementText().toDouble());
4588 if (!tag.compare(u"y"_s, Qt::CaseInsensitive)) {
4589 setElementY(reader.readElementText().toDouble());
4592 if (!tag.compare(u"width"_s, Qt::CaseInsensitive)) {
4593 setElementWidth(reader.readElementText().toDouble());
4596 if (!tag.compare(u"height"_s, Qt::CaseInsensitive)) {
4597 setElementHeight(reader.readElementText().toDouble());
4600 reader.raiseError(
"Unexpected element "_L1 + tag);
4603 case QXmlStreamReader::EndElement :
4611void DomRectF::write(QXmlStreamWriter &writer,
const QString &tagName)
const
4613 writer.writeStartElement(tagName.isEmpty() ?
QStringLiteral(
"rectf") : tagName.toLower());
4616 writer.writeTextElement(u"x"_s, QString::number(m_x,
'f', 15));
4619 writer.writeTextElement(u"y"_s, QString::number(m_y,
'f', 15));
4621 if (m_children & Width)
4622 writer.writeTextElement(u"width"_s, QString::number(m_width,
'f', 15));
4624 if (m_children & Height)
4625 writer.writeTextElement(u"height"_s, QString::number(m_height,
'f', 15));
4627 writer.writeEndElement();
4921void DomProperty::read(QXmlStreamReader &reader)
4923 const QXmlStreamAttributes &attributes = reader.attributes();
4924 for (
const QXmlStreamAttribute &attribute : attributes) {
4925 const auto name = attribute.name();
4926 if (name == u"name"_s) {
4927 setAttributeName(attribute.value().toString());
4930 if (name == u"stdset"_s) {
4931 setAttributeStdset(attribute.value().toInt());
4934 reader.raiseError(
"Unexpected attribute "_L1 + name);
4937 while (!reader.hasError()) {
4938 switch (reader.readNext()) {
4939 case QXmlStreamReader::StartElement : {
4940 const auto tag = reader.name();
4941 if (!tag.compare(u"bool"_s, Qt::CaseInsensitive)) {
4942 setElementBool(reader.readElementText());
4945 if (!tag.compare(u"color"_s, Qt::CaseInsensitive)) {
4946 auto *v =
new DomColor();
4951 if (!tag.compare(u"cstring"_s, Qt::CaseInsensitive)) {
4952 setElementCstring(reader.readElementText());
4955 if (!tag.compare(u"cursor"_s, Qt::CaseInsensitive)) {
4956 setElementCursor(reader.readElementText().toInt());
4959 if (!tag.compare(u"cursorshape"_s, Qt::CaseInsensitive)) {
4960 setElementCursorShape(reader.readElementText());
4963 if (!tag.compare(u"enum"_s, Qt::CaseInsensitive)) {
4964 setElementEnum(reader.readElementText());
4967 if (!tag.compare(u"font"_s, Qt::CaseInsensitive)) {
4968 auto *v =
new DomFont();
4973 if (!tag.compare(u"iconset"_s, Qt::CaseInsensitive)) {
4974 auto *v =
new DomResourceIcon();
4976 setElementIconSet(v);
4979 if (!tag.compare(u"pixmap"_s, Qt::CaseInsensitive)) {
4980 auto *v =
new DomResourcePixmap();
4982 setElementPixmap(v);
4985 if (!tag.compare(u"palette"_s, Qt::CaseInsensitive)) {
4986 auto *v =
new DomPalette();
4988 setElementPalette(v);
4991 if (!tag.compare(u"point"_s, Qt::CaseInsensitive)) {
4992 auto *v =
new DomPoint();
4997 if (!tag.compare(u"rect"_s, Qt::CaseInsensitive)) {
4998 auto *v =
new DomRect();
5003 if (!tag.compare(u"set"_s, Qt::CaseInsensitive)) {
5004 setElementSet(reader.readElementText());
5007 if (!tag.compare(u"locale"_s, Qt::CaseInsensitive)) {
5008 auto *v =
new DomLocale();
5010 setElementLocale(v);
5013 if (!tag.compare(u"sizepolicy"_s, Qt::CaseInsensitive)) {
5014 auto *v =
new DomSizePolicy();
5016 setElementSizePolicy(v);
5019 if (!tag.compare(u"size"_s, Qt::CaseInsensitive)) {
5020 auto *v =
new DomSize();
5025 if (!tag.compare(u"string"_s, Qt::CaseInsensitive)) {
5026 auto *v =
new DomString();
5028 setElementString(v);
5031 if (!tag.compare(u"stringlist"_s, Qt::CaseInsensitive)) {
5032 auto *v =
new DomStringList();
5034 setElementStringList(v);
5037 if (!tag.compare(u"number"_s, Qt::CaseInsensitive)) {
5038 setElementNumber(reader.readElementText().toInt());
5041 if (!tag.compare(u"float"_s, Qt::CaseInsensitive)) {
5042 setElementFloat(reader.readElementText().toFloat());
5045 if (!tag.compare(u"double"_s, Qt::CaseInsensitive)) {
5046 setElementDouble(reader.readElementText().toDouble());
5049 if (!tag.compare(u"date"_s, Qt::CaseInsensitive)) {
5050 auto *v =
new DomDate();
5055 if (!tag.compare(u"time"_s, Qt::CaseInsensitive)) {
5056 auto *v =
new DomTime();
5061 if (!tag.compare(u"datetime"_s, Qt::CaseInsensitive)) {
5062 auto *v =
new DomDateTime();
5064 setElementDateTime(v);
5067 if (!tag.compare(u"pointf"_s, Qt::CaseInsensitive)) {
5068 auto *v =
new DomPointF();
5070 setElementPointF(v);
5073 if (!tag.compare(u"rectf"_s, Qt::CaseInsensitive)) {
5074 auto *v =
new DomRectF();
5079 if (!tag.compare(u"sizef"_s, Qt::CaseInsensitive)) {
5080 auto *v =
new DomSizeF();
5085 if (!tag.compare(u"longlong"_s, Qt::CaseInsensitive)) {
5086 setElementLongLong(reader.readElementText().toLongLong());
5089 if (!tag.compare(u"char"_s, Qt::CaseInsensitive)) {
5090 auto *v =
new DomChar();
5095 if (!tag.compare(u"url"_s, Qt::CaseInsensitive)) {
5096 auto *v =
new DomUrl();
5101 if (!tag.compare(u"uint"_s, Qt::CaseInsensitive)) {
5102 setElementUInt(reader.readElementText().toUInt());
5105 if (!tag.compare(u"ulonglong"_s, Qt::CaseInsensitive)) {
5106 setElementULongLong(reader.readElementText().toULongLong());
5109 if (!tag.compare(u"brush"_s, Qt::CaseInsensitive)) {
5110 auto *v =
new DomBrush();
5115 reader.raiseError(
"Unexpected element "_L1 + tag);
5118 case QXmlStreamReader::EndElement :
5126void DomProperty::write(QXmlStreamWriter &writer,
const QString &tagName)
const
5128 writer.writeStartElement(tagName.isEmpty() ?
QStringLiteral(
"property") : tagName.toLower());
5130 if (hasAttributeName())
5131 writer.writeAttribute(u"name"_s, attributeName());
5133 if (hasAttributeStdset())
5134 writer.writeAttribute(u"stdset"_s, QString::number(attributeStdset()));
5138 writer.writeTextElement(u"bool"_s, elementBool());
5142 if (m_color !=
nullptr)
5143 m_color->write(writer, u"color"_s);
5147 writer.writeTextElement(u"cstring"_s, elementCstring());
5151 writer.writeTextElement(u"cursor"_s, QString::number(elementCursor()));
5155 writer.writeTextElement(u"cursorShape"_s, elementCursorShape());
5159 writer.writeTextElement(u"enum"_s, elementEnum());
5163 if (m_font !=
nullptr)
5164 m_font->write(writer, u"font"_s);
5168 if (m_iconSet !=
nullptr)
5169 m_iconSet->write(writer, u"iconset"_s);
5173 if (m_pixmap !=
nullptr)
5174 m_pixmap->write(writer, u"pixmap"_s);
5178 if (m_palette !=
nullptr)
5179 m_palette->write(writer, u"palette"_s);
5183 if (m_point !=
nullptr)
5184 m_point->write(writer, u"point"_s);
5188 if (m_rect !=
nullptr)
5189 m_rect->write(writer, u"rect"_s);
5193 writer.writeTextElement(u"set"_s, elementSet());
5197 if (m_locale !=
nullptr)
5198 m_locale->write(writer, u"locale"_s);
5202 if (m_sizePolicy !=
nullptr)
5203 m_sizePolicy->write(writer, u"sizepolicy"_s);
5207 if (m_size !=
nullptr)
5208 m_size->write(writer, u"size"_s);
5212 if (m_string !=
nullptr)
5213 m_string->write(writer, u"string"_s);
5217 if (m_stringList !=
nullptr)
5218 m_stringList->write(writer, u"stringlist"_s);
5222 writer.writeTextElement(u"number"_s, QString::number(elementNumber()));
5226 writer.writeTextElement(u"float"_s, QString::number(elementFloat(),
'f', 8));
5230 writer.writeTextElement(u"double"_s, QString::number(elementDouble(),
'f', 15));
5234 if (m_date !=
nullptr)
5235 m_date->write(writer, u"date"_s);
5239 if (m_time !=
nullptr)
5240 m_time->write(writer, u"time"_s);
5244 if (m_dateTime !=
nullptr)
5245 m_dateTime->write(writer, u"datetime"_s);
5249 if (m_pointF !=
nullptr)
5250 m_pointF->write(writer, u"pointf"_s);
5254 if (m_rectF !=
nullptr)
5255 m_rectF->write(writer, u"rectf"_s);
5259 if (m_sizeF !=
nullptr)
5260 m_sizeF->write(writer, u"sizef"_s);
5264 writer.writeTextElement(u"longLong"_s, QString::number(elementLongLong()));
5268 if (m_char !=
nullptr)
5269 m_char->write(writer, u"char"_s);
5273 if (m_url !=
nullptr)
5274 m_url->write(writer, u"url"_s);
5278 writer.writeTextElement(u"UInt"_s, QString::number(elementUInt()));
5282 writer.writeTextElement(u"uLongLong"_s, QString::number(elementULongLong()));
5286 if (m_brush !=
nullptr)
5287 m_brush->write(writer, u"brush"_s);
5293 writer.writeEndElement();
5724void DomConnection::read(QXmlStreamReader &reader)
5726 while (!reader.hasError()) {
5727 switch (reader.readNext()) {
5728 case QXmlStreamReader::StartElement : {
5729 const auto tag = reader.name();
5730 if (!tag.compare(u"sender"_s, Qt::CaseInsensitive)) {
5731 setElementSender(reader.readElementText());
5734 if (!tag.compare(u"signal"_s, Qt::CaseInsensitive)) {
5735 setElementSignal(reader.readElementText());
5738 if (!tag.compare(u"receiver"_s, Qt::CaseInsensitive)) {
5739 setElementReceiver(reader.readElementText());
5742 if (!tag.compare(u"slot"_s, Qt::CaseInsensitive)) {
5743 setElementSlot(reader.readElementText());
5746 if (!tag.compare(u"hints"_s, Qt::CaseInsensitive)) {
5747 auto *v =
new DomConnectionHints();
5752 reader.raiseError(
"Unexpected element "_L1 + tag);
5755 case QXmlStreamReader::EndElement :
5898void DomConnectionHint::read(QXmlStreamReader &reader)
5900 const QXmlStreamAttributes &attributes = reader.attributes();
5901 for (
const QXmlStreamAttribute &attribute : attributes) {
5902 const auto name = attribute.name();
5903 if (name == u"type"_s) {
5904 setAttributeType(attribute.value().toString());
5907 reader.raiseError(
"Unexpected attribute "_L1 + name);
5910 while (!reader.hasError()) {
5911 switch (reader.readNext()) {
5912 case QXmlStreamReader::StartElement : {
5913 const auto tag = reader.name();
5914 if (!tag.compare(u"x"_s, Qt::CaseInsensitive)) {
5915 setElementX(reader.readElementText().toInt());
5918 if (!tag.compare(u"y"_s, Qt::CaseInsensitive)) {
5919 setElementY(reader.readElementText().toInt());
5922 reader.raiseError(
"Unexpected element "_L1 + tag);
5925 case QXmlStreamReader::EndElement :