36void DomUI::read(QXmlStreamReader &reader)
38 const QXmlStreamAttributes &attributes = reader.attributes();
39 for (
const QXmlStreamAttribute &attribute : attributes) {
40 const auto name = attribute.name();
41 if (name == u"version"_s) {
42 setAttributeVersion(attribute.value().toString());
45 if (name == u"language"_s) {
46 setAttributeLanguage(attribute.value().toString());
49 if (name == u"displayname"_s) {
50 setAttributeDisplayname(attribute.value().toString());
53 if (name == u"idbasedtr"_s) {
54 setAttributeIdbasedtr(attribute.value() == u"true"_s);
57 if (name == u"label"_s) {
58 setAttributeLabel(attribute.value().toString());
61 if (name == u"connectslotsbyname"_s) {
62 setAttributeConnectslotsbyname(attribute.value() == u"true"_s);
65 if (name == u"stdsetdef"_s) {
66 setAttributeStdsetdef(attribute.value().toInt());
69 if (name == u"stdSetDef"_s) {
70 setAttributeStdSetDef(attribute.value().toInt());
73 reader.raiseError(
"Unexpected attribute "_L1 + name);
76 while (!reader.hasError()) {
77 switch (reader.readNext()) {
78 case QXmlStreamReader::StartElement : {
79 const auto tag = reader.name();
80 if (!tag.compare(u"author"_s, Qt::CaseInsensitive)) {
81 setElementAuthor(reader.readElementText());
84 if (!tag.compare(u"comment"_s, Qt::CaseInsensitive)
85 || !tag.compare(u"legal"_s, Qt::CaseInsensitive)) {
86 setElementComment(reader.readElementText());
89 if (!tag.compare(u"exportmacro"_s, Qt::CaseInsensitive)) {
90 setElementExportMacro(reader.readElementText());
93 if (!tag.compare(u"class"_s, Qt::CaseInsensitive)) {
94 setElementClass(reader.readElementText());
97 if (!tag.compare(u"widget"_s, Qt::CaseInsensitive)) {
98 auto *v =
new DomWidget();
103 if (!tag.compare(u"layoutdefault"_s, Qt::CaseInsensitive)) {
104 auto *v =
new DomLayoutDefault();
106 setElementLayoutDefault(v);
109 if (!tag.compare(u"layoutfunction"_s, Qt::CaseInsensitive)) {
110 auto *v =
new DomLayoutFunction();
112 setElementLayoutFunction(v);
115 if (!tag.compare(u"pixmapfunction"_s, Qt::CaseInsensitive)) {
116 setElementPixmapFunction(reader.readElementText());
119 if (!tag.compare(u"customwidgets"_s, Qt::CaseInsensitive)) {
120 auto *v =
new DomCustomWidgets();
122 setElementCustomWidgets(v);
125 if (!tag.compare(u"tabstops"_s, Qt::CaseInsensitive)) {
126 auto *v =
new DomTabStops();
128 setElementTabStops(v);
131 if (!tag.compare(u"images"_s, Qt::CaseInsensitive)) {
132 qWarning(
"Omitting deprecated element <images>.");
133 reader.skipCurrentElement();
136 if (!tag.compare(u"includes"_s, Qt::CaseInsensitive)) {
137 auto *v =
new DomIncludes();
139 setElementIncludes(v);
142 if (!tag.compare(u"resources"_s, Qt::CaseInsensitive)) {
143 auto *v =
new DomResources();
145 setElementResources(v);
148 if (!tag.compare(u"connections"_s, Qt::CaseInsensitive)) {
149 auto *v =
new DomConnections();
151 setElementConnections(v);
154 if (!tag.compare(u"designerdata"_s, Qt::CaseInsensitive)) {
155 auto *v =
new DomDesignerData();
157 setElementDesignerdata(v);
160 if (!tag.compare(u"slots"_s, Qt::CaseInsensitive)) {
161 auto *v =
new DomSlots();
166 if (!tag.compare(u"buttongroups"_s, Qt::CaseInsensitive)) {
167 auto *v =
new DomButtonGroups();
169 setElementButtonGroups(v);
172 reader.raiseError(
"Unexpected element "_L1 + tag);
175 case QXmlStreamReader::EndElement :
183void DomUI::write(QXmlStreamWriter &writer,
const QString &tagName)
const
185 writer.writeStartElement(tagName.isEmpty() ?
QStringLiteral(
"ui") : tagName.toLower());
187 if (hasAttributeVersion())
188 writer.writeAttribute(u"version"_s, attributeVersion());
190 if (hasAttributeLanguage())
191 writer.writeAttribute(u"language"_s, attributeLanguage());
193 if (hasAttributeDisplayname())
194 writer.writeAttribute(u"displayname"_s, attributeDisplayname());
196 if (hasAttributeIdbasedtr())
197 writer.writeAttribute(u"idbasedtr"_s, (attributeIdbasedtr() ? u"true"_s : u"false"_s));
199 if (hasAttributeLabel())
200 writer.writeAttribute(u"label"_s, attributeLabel());
202 if (hasAttributeConnectslotsbyname())
203 writer.writeAttribute(u"connectslotsbyname"_s, (attributeConnectslotsbyname() ? u"true"_s : u"false"_s));
205 if (hasAttributeStdsetdef())
206 writer.writeAttribute(u"stdsetdef"_s, QString::number(attributeStdsetdef()));
208 if (hasAttributeStdSetDef())
209 writer.writeAttribute(u"stdsetdef"_s, QString::number(attributeStdSetDef()));
211 if (m_children & Author)
212 writer.writeTextElement(u"author"_s, m_author);
214 if (m_children & Comment)
215 writer.writeTextElement(u"comment"_s, m_comment);
217 if (m_children & ExportMacro)
218 writer.writeTextElement(u"exportmacro"_s, m_exportMacro);
220 if (m_children & Class)
221 writer.writeTextElement(u"class"_s, m_class);
223 if (m_children & Widget)
224 m_widget->write(writer, u"widget"_s);
226 if (m_children & LayoutDefault)
227 m_layoutDefault->write(writer, u"layoutdefault"_s);
229 if (m_children & LayoutFunction)
230 m_layoutFunction->write(writer, u"layoutfunction"_s);
232 if (m_children & PixmapFunction)
233 writer.writeTextElement(u"pixmapfunction"_s, m_pixmapFunction);
235 if (m_children & CustomWidgets)
236 m_customWidgets->write(writer, u"customwidgets"_s);
238 if (m_children & TabStops)
239 m_tabStops->write(writer, u"tabstops"_s);
241 if (m_children & Includes)
242 m_includes->write(writer, u"includes"_s);
244 if (m_children & Resources)
245 m_resources->write(writer, u"resources"_s);
247 if (m_children & Connections)
248 m_connections->write(writer, u"connections"_s);
250 if (m_children & Designerdata)
251 m_designerdata->write(writer, u"designerdata"_s);
253 if (m_children & Slots)
254 m_slots->write(writer, u"slots"_s);
256 if (m_children & ButtonGroups)
257 m_buttonGroups->write(writer, u"buttongroups"_s);
259 writer.writeEndElement();
606void DomInclude::read(QXmlStreamReader &reader)
608 const QXmlStreamAttributes &attributes = reader.attributes();
609 for (
const QXmlStreamAttribute &attribute : attributes) {
610 const auto name = attribute.name();
611 if (name == u"location"_s) {
612 setAttributeLocation(attribute.value().toString());
615 if (name == u"impldecl"_s) {
616 setAttributeImpldecl(attribute.value().toString());
619 reader.raiseError(
"Unexpected attribute "_L1 + name);
622 while (!reader.hasError()) {
623 switch (reader.readNext()) {
624 case QXmlStreamReader::StartElement : {
625 const auto tag = reader.name();
626 reader.raiseError(
"Unexpected element "_L1 + tag);
629 case QXmlStreamReader::EndElement :
631 case QXmlStreamReader::Characters :
632 if (!reader.isWhitespace())
633 m_text.append(reader.text().toString());
766void DomActionGroup::read(QXmlStreamReader &reader)
768 const QXmlStreamAttributes &attributes = reader.attributes();
769 for (
const QXmlStreamAttribute &attribute : attributes) {
770 const auto name = attribute.name();
771 if (name == u"name"_s) {
772 setAttributeName(attribute.value().toString());
775 reader.raiseError(
"Unexpected attribute "_L1 + name);
778 while (!reader.hasError()) {
779 switch (reader.readNext()) {
780 case QXmlStreamReader::StartElement : {
781 const auto tag = reader.name();
782 if (!tag.compare(u"action"_s, Qt::CaseInsensitive)) {
783 auto *v =
new DomAction();
788 if (!tag.compare(u"actiongroup"_s, Qt::CaseInsensitive)) {
789 auto *v =
new DomActionGroup();
791 m_actionGroup.append(v);
794 if (!tag.compare(u"property"_s, Qt::CaseInsensitive)) {
795 auto *v =
new DomProperty();
797 m_property.append(v);
800 if (!tag.compare(u"attribute"_s, Qt::CaseInsensitive)) {
801 auto *v =
new DomProperty();
803 m_attribute.append(v);
806 reader.raiseError(
"Unexpected element "_L1 + tag);
809 case QXmlStreamReader::EndElement :
817void DomActionGroup::write(QXmlStreamWriter &writer,
const QString &tagName)
const
819 writer.writeStartElement(tagName.isEmpty() ?
QStringLiteral(
"actiongroup") : tagName.toLower());
821 if (hasAttributeName())
822 writer.writeAttribute(u"name"_s, attributeName());
824 for (DomAction *v : m_action)
825 v->write(writer, u"action"_s);
827 for (DomActionGroup *v : m_actionGroup)
828 v->write(writer, u"actiongroup"_s);
830 for (DomProperty *v : m_property)
831 v->write(writer, u"property"_s);
833 for (DomProperty *v : m_attribute)
834 v->write(writer, u"attribute"_s);
836 writer.writeEndElement();
914void DomAction::write(QXmlStreamWriter &writer,
const QString &tagName)
const
916 writer.writeStartElement(tagName.isEmpty() ?
QStringLiteral(
"action") : tagName.toLower());
918 if (hasAttributeName())
919 writer.writeAttribute(u"name"_s, attributeName());
921 if (hasAttributeMenu())
922 writer.writeAttribute(u"menu"_s, attributeMenu());
924 for (DomProperty *v : m_property)
925 v->write(writer, u"property"_s);
927 for (DomProperty *v : m_attribute)
928 v->write(writer, u"attribute"_s);
930 writer.writeEndElement();
1203void DomCustomWidget::read(QXmlStreamReader &reader)
1205 while (!reader.hasError()) {
1206 switch (reader.readNext()) {
1207 case QXmlStreamReader::StartElement : {
1208 const auto tag = reader.name();
1209 if (!tag.compare(u"class"_s, Qt::CaseInsensitive)) {
1210 setElementClass(reader.readElementText());
1213 if (!tag.compare(u"extends"_s, Qt::CaseInsensitive)) {
1214 setElementExtends(reader.readElementText());
1217 if (!tag.compare(u"header"_s, Qt::CaseInsensitive)) {
1218 auto *v =
new DomHeader();
1220 setElementHeader(v);
1223 if (!tag.compare(u"sizehint"_s, Qt::CaseInsensitive)) {
1224 auto *v =
new DomSize();
1226 setElementSizeHint(v);
1229 if (!tag.compare(u"addpagemethod"_s, Qt::CaseInsensitive)) {
1230 setElementAddPageMethod(reader.readElementText());
1233 if (!tag.compare(u"container"_s, Qt::CaseInsensitive)) {
1234 setElementContainer(reader.readElementText().toInt());
1237 if (!tag.compare(u"sizepolicy"_s, Qt::CaseInsensitive)) {
1238 qWarning(
"Omitting deprecated element <sizepolicy>.");
1239 reader.skipCurrentElement();
1242 if (!tag.compare(u"pixmap"_s, Qt::CaseInsensitive)) {
1243 setElementPixmap(reader.readElementText());
1246 if (!tag.compare(u"script"_s, Qt::CaseInsensitive)) {
1247 qWarning(
"Omitting deprecated element <script>.");
1248 reader.skipCurrentElement();
1251 if (!tag.compare(u"properties"_s, Qt::CaseInsensitive)) {
1252 qWarning(
"Omitting deprecated element <properties>.");
1253 reader.skipCurrentElement();
1256 if (!tag.compare(u"slots"_s, Qt::CaseInsensitive)) {
1257 auto *v =
new DomSlots();
1262 if (!tag.compare(u"propertyspecifications"_s, Qt::CaseInsensitive)) {
1263 auto *v =
new DomPropertySpecifications();
1265 setElementPropertyspecifications(v);
1268 reader.raiseError(
"Unexpected element "_L1 + tag);
1271 case QXmlStreamReader::EndElement :
1279void DomCustomWidget::write(QXmlStreamWriter &writer,
const QString &tagName)
const
1281 writer.writeStartElement(tagName.isEmpty() ?
QStringLiteral(
"customwidget") : tagName.toLower());
1283 if (m_children & Class)
1284 writer.writeTextElement(u"class"_s, m_class);
1286 if (m_children & Extends)
1287 writer.writeTextElement(u"extends"_s, m_extends);
1289 if (m_children & Header)
1290 m_header->write(writer, u"header"_s);
1292 if (m_children & SizeHint)
1293 m_sizeHint->write(writer, u"sizehint"_s);
1295 if (m_children & AddPageMethod)
1296 writer.writeTextElement(u"addpagemethod"_s, m_addPageMethod);
1298 if (m_children & Container)
1299 writer.writeTextElement(u"container"_s, QString::number(m_container));
1301 if (m_children & Pixmap)
1302 writer.writeTextElement(u"pixmap"_s, m_pixmap);
1304 if (m_children & Slots)
1305 m_slots->write(writer, u"slots"_s);
1307 if (m_children & Propertyspecifications)
1308 m_propertyspecifications->write(writer, u"propertyspecifications"_s);
1310 writer.writeEndElement();
1600void DomLayout::read(QXmlStreamReader &reader)
1602 const QXmlStreamAttributes &attributes = reader.attributes();
1603 for (
const QXmlStreamAttribute &attribute : attributes) {
1604 const auto name = attribute.name();
1605 if (name == u"class"_s) {
1606 setAttributeClass(attribute.value().toString());
1609 if (name == u"name"_s) {
1610 setAttributeName(attribute.value().toString());
1613 if (name == u"stretch"_s) {
1614 setAttributeStretch(attribute.value().toString());
1617 if (name == u"rowstretch"_s) {
1618 setAttributeRowStretch(attribute.value().toString());
1621 if (name == u"columnstretch"_s) {
1622 setAttributeColumnStretch(attribute.value().toString());
1625 if (name == u"rowminimumheight"_s) {
1626 setAttributeRowMinimumHeight(attribute.value().toString());
1629 if (name == u"columnminimumwidth"_s) {
1630 setAttributeColumnMinimumWidth(attribute.value().toString());
1633 reader.raiseError(
"Unexpected attribute "_L1 + name);
1636 while (!reader.hasError()) {
1637 switch (reader.readNext()) {
1638 case QXmlStreamReader::StartElement : {
1639 const auto tag = reader.name();
1640 if (!tag.compare(u"property"_s, Qt::CaseInsensitive)) {
1641 auto *v =
new DomProperty();
1643 m_property.append(v);
1646 if (!tag.compare(u"attribute"_s, Qt::CaseInsensitive)) {
1647 auto *v =
new DomProperty();
1649 m_attribute.append(v);
1652 if (!tag.compare(u"item"_s, Qt::CaseInsensitive)) {
1653 auto *v =
new DomLayoutItem();
1658 reader.raiseError(
"Unexpected element "_L1 + tag);
1661 case QXmlStreamReader::EndElement :
1669void DomLayout::write(QXmlStreamWriter &writer,
const QString &tagName)
const
1671 writer.writeStartElement(tagName.isEmpty() ?
QStringLiteral(
"layout") : tagName.toLower());
1673 if (hasAttributeClass())
1674 writer.writeAttribute(u"class"_s, attributeClass());
1676 if (hasAttributeName())
1677 writer.writeAttribute(u"name"_s, attributeName());
1679 if (hasAttributeStretch())
1680 writer.writeAttribute(u"stretch"_s, attributeStretch());
1682 if (hasAttributeRowStretch())
1683 writer.writeAttribute(u"rowstretch"_s, attributeRowStretch());
1685 if (hasAttributeColumnStretch())
1686 writer.writeAttribute(u"columnstretch"_s, attributeColumnStretch());
1688 if (hasAttributeRowMinimumHeight())
1689 writer.writeAttribute(u"rowminimumheight"_s, attributeRowMinimumHeight());
1691 if (hasAttributeColumnMinimumWidth())
1692 writer.writeAttribute(u"columnminimumwidth"_s, attributeColumnMinimumWidth());
1694 for (DomProperty *v : m_property)
1695 v->write(writer, u"property"_s);
1697 for (DomProperty *v : m_attribute)
1698 v->write(writer, u"attribute"_s);
1700 for (DomLayoutItem *v : m_item)
1701 v->write(writer, u"item"_s);
1703 writer.writeEndElement();
1744void DomLayoutItem::read(QXmlStreamReader &reader)
1746 const QXmlStreamAttributes &attributes = reader.attributes();
1747 for (
const QXmlStreamAttribute &attribute : attributes) {
1748 const auto name = attribute.name();
1749 if (name == u"row"_s) {
1750 setAttributeRow(attribute.value().toInt());
1753 if (name == u"column"_s) {
1754 setAttributeColumn(attribute.value().toInt());
1757 if (name == u"rowspan"_s) {
1758 setAttributeRowSpan(attribute.value().toInt());
1761 if (name == u"colspan"_s) {
1762 setAttributeColSpan(attribute.value().toInt());
1765 if (name == u"alignment"_s) {
1766 setAttributeAlignment(attribute.value().toString());
1769 reader.raiseError(
"Unexpected attribute "_L1 + name);
1772 while (!reader.hasError()) {
1773 switch (reader.readNext()) {
1774 case QXmlStreamReader::StartElement : {
1775 const auto tag = reader.name();
1776 if (!tag.compare(u"widget"_s, Qt::CaseInsensitive)) {
1777 auto *v =
new DomWidget();
1779 setElementWidget(v);
1782 if (!tag.compare(u"layout"_s, Qt::CaseInsensitive)) {
1783 auto *v =
new DomLayout();
1785 setElementLayout(v);
1788 if (!tag.compare(u"spacer"_s, Qt::CaseInsensitive)) {
1789 auto *v =
new DomSpacer();
1791 setElementSpacer(v);
1794 reader.raiseError(
"Unexpected element "_L1 + tag);
1797 case QXmlStreamReader::EndElement :
1805void DomLayoutItem::write(QXmlStreamWriter &writer,
const QString &tagName)
const
1807 writer.writeStartElement(tagName.isEmpty() ?
QStringLiteral(
"layoutitem") : tagName.toLower());
1809 if (hasAttributeRow())
1810 writer.writeAttribute(u"row"_s, QString::number(attributeRow()));
1812 if (hasAttributeColumn())
1813 writer.writeAttribute(u"column"_s, QString::number(attributeColumn()));
1815 if (hasAttributeRowSpan())
1816 writer.writeAttribute(u"rowspan"_s, QString::number(attributeRowSpan()));
1818 if (hasAttributeColSpan())
1819 writer.writeAttribute(u"colspan"_s, QString::number(attributeColSpan()));
1821 if (hasAttributeAlignment())
1822 writer.writeAttribute(u"alignment"_s, attributeAlignment());
1826 if (m_widget !=
nullptr)
1827 m_widget->write(writer, u"widget"_s);
1831 if (m_layout !=
nullptr)
1832 m_layout->write(writer, u"layout"_s);
1836 if (m_spacer !=
nullptr)
1837 m_spacer->write(writer, u"spacer"_s);
1843 writer.writeEndElement();
2086void DomWidget::read(QXmlStreamReader &reader)
2088 const QXmlStreamAttributes &attributes = reader.attributes();
2089 for (
const QXmlStreamAttribute &attribute : attributes) {
2090 const auto name = attribute.name();
2091 if (name == u"class"_s) {
2092 setAttributeClass(attribute.value().toString());
2095 if (name == u"name"_s) {
2096 setAttributeName(attribute.value().toString());
2099 if (name == u"native"_s) {
2100 setAttributeNative(attribute.value() == u"true"_s);
2103 reader.raiseError(
"Unexpected attribute "_L1 + name);
2106 while (!reader.hasError()) {
2107 switch (reader.readNext()) {
2108 case QXmlStreamReader::StartElement : {
2109 const auto tag = reader.name();
2110 if (!tag.compare(u"class"_s, Qt::CaseInsensitive)) {
2111 m_class.append(reader.readElementText());
2114 if (!tag.compare(u"property"_s, Qt::CaseInsensitive)) {
2115 auto *v =
new DomProperty();
2117 m_property.append(v);
2120 if (!tag.compare(u"script"_s, Qt::CaseInsensitive)) {
2121 qWarning(
"Omitting deprecated element <script>.");
2122 reader.skipCurrentElement();
2125 if (!tag.compare(u"widgetdata"_s, Qt::CaseInsensitive)) {
2126 qWarning(
"Omitting deprecated element <widgetdata>.");
2127 reader.skipCurrentElement();
2130 if (!tag.compare(u"attribute"_s, Qt::CaseInsensitive)) {
2131 auto *v =
new DomProperty();
2133 m_attribute.append(v);
2136 if (!tag.compare(u"row"_s, Qt::CaseInsensitive)) {
2137 auto *v =
new DomRow();
2142 if (!tag.compare(u"column"_s, Qt::CaseInsensitive)) {
2143 auto *v =
new DomColumn();
2148 if (!tag.compare(u"item"_s, Qt::CaseInsensitive)) {
2149 auto *v =
new DomItem();
2154 if (!tag.compare(u"layout"_s, Qt::CaseInsensitive)) {
2155 auto *v =
new DomLayout();
2160 if (!tag.compare(u"widget"_s, Qt::CaseInsensitive)) {
2161 auto *v =
new DomWidget();
2166 if (!tag.compare(u"action"_s, Qt::CaseInsensitive)) {
2167 auto *v =
new DomAction();
2172 if (!tag.compare(u"actiongroup"_s, Qt::CaseInsensitive)) {
2173 auto *v =
new DomActionGroup();
2175 m_actionGroup.append(v);
2178 if (!tag.compare(u"addaction"_s, Qt::CaseInsensitive)) {
2179 auto *v =
new DomActionRef();
2181 m_addAction.append(v);
2184 if (!tag.compare(u"zorder"_s, Qt::CaseInsensitive)) {
2185 m_zOrder.append(reader.readElementText());
2188 reader.raiseError(
"Unexpected element "_L1 + tag);
2191 case QXmlStreamReader::EndElement :
2199void DomWidget::write(QXmlStreamWriter &writer,
const QString &tagName)
const
2201 writer.writeStartElement(tagName.isEmpty() ?
QStringLiteral(
"widget") : tagName.toLower());
2203 if (hasAttributeClass())
2204 writer.writeAttribute(u"class"_s, attributeClass());
2206 if (hasAttributeName())
2207 writer.writeAttribute(u"name"_s, attributeName());
2209 if (hasAttributeNative())
2210 writer.writeAttribute(u"native"_s, (attributeNative() ? u"true"_s : u"false"_s));
2212 for (
const QString &v : m_class)
2213 writer.writeTextElement(u"class"_s, v);
2215 for (DomProperty *v : m_property)
2216 v->write(writer, u"property"_s);
2218 for (DomProperty *v : m_attribute)
2219 v->write(writer, u"attribute"_s);
2221 for (DomRow *v : m_row)
2222 v->write(writer, u"row"_s);
2224 for (DomColumn *v : m_column)
2225 v->write(writer, u"column"_s);
2227 for (DomItem *v : m_item)
2228 v->write(writer, u"item"_s);
2230 for (DomLayout *v : m_layout)
2231 v->write(writer, u"layout"_s);
2233 for (DomWidget *v : m_widget)
2234 v->write(writer, u"widget"_s);
2236 for (DomAction *v : m_action)
2237 v->write(writer, u"action"_s);
2239 for (DomActionGroup *v : m_actionGroup)
2240 v->write(writer, u"actiongroup"_s);
2242 for (DomActionRef *v : m_addAction)
2243 v->write(writer, u"addaction"_s);
2245 for (
const QString &v : m_zOrder)
2246 writer.writeTextElement(u"zorder"_s, v);
2248 writer.writeEndElement();
2383void DomColor::read(QXmlStreamReader &reader)
2385 const QXmlStreamAttributes &attributes = reader.attributes();
2386 for (
const QXmlStreamAttribute &attribute : attributes) {
2387 const auto name = attribute.name();
2388 if (name == u"alpha"_s) {
2389 setAttributeAlpha(attribute.value().toInt());
2392 reader.raiseError(
"Unexpected attribute "_L1 + name);
2395 while (!reader.hasError()) {
2396 switch (reader.readNext()) {
2397 case QXmlStreamReader::StartElement : {
2398 const auto tag = reader.name();
2399 if (!tag.compare(u"red"_s, Qt::CaseInsensitive)) {
2400 setElementRed(reader.readElementText().toInt());
2403 if (!tag.compare(u"green"_s, Qt::CaseInsensitive)) {
2404 setElementGreen(reader.readElementText().toInt());
2407 if (!tag.compare(u"blue"_s, Qt::CaseInsensitive)) {
2408 setElementBlue(reader.readElementText().toInt());
2411 reader.raiseError(
"Unexpected element "_L1 + tag);
2414 case QXmlStreamReader::EndElement :
2553void DomGradient::read(QXmlStreamReader &reader)
2555 const QXmlStreamAttributes &attributes = reader.attributes();
2556 for (
const QXmlStreamAttribute &attribute : attributes) {
2557 const auto name = attribute.name();
2558 if (name == u"startx"_s) {
2559 setAttributeStartX(attribute.value().toDouble());
2562 if (name == u"starty"_s) {
2563 setAttributeStartY(attribute.value().toDouble());
2566 if (name == u"endx"_s) {
2567 setAttributeEndX(attribute.value().toDouble());
2570 if (name == u"endy"_s) {
2571 setAttributeEndY(attribute.value().toDouble());
2574 if (name == u"centralx"_s) {
2575 setAttributeCentralX(attribute.value().toDouble());
2578 if (name == u"centraly"_s) {
2579 setAttributeCentralY(attribute.value().toDouble());
2582 if (name == u"focalx"_s) {
2583 setAttributeFocalX(attribute.value().toDouble());
2586 if (name == u"focaly"_s) {
2587 setAttributeFocalY(attribute.value().toDouble());
2590 if (name == u"radius"_s) {
2591 setAttributeRadius(attribute.value().toDouble());
2594 if (name == u"angle"_s) {
2595 setAttributeAngle(attribute.value().toDouble());
2598 if (name == u"type"_s) {
2599 setAttributeType(attribute.value().toString());
2602 if (name == u"spread"_s) {
2603 setAttributeSpread(attribute.value().toString());
2606 if (name == u"coordinatemode"_s) {
2607 setAttributeCoordinateMode(attribute.value().toString());
2610 reader.raiseError(
"Unexpected attribute "_L1 + name);
2613 while (!reader.hasError()) {
2614 switch (reader.readNext()) {
2615 case QXmlStreamReader::StartElement : {
2616 const auto tag = reader.name();
2617 if (!tag.compare(u"gradientstop"_s, Qt::CaseInsensitive)) {
2618 auto *v =
new DomGradientStop();
2620 m_gradientStop.append(v);
2623 reader.raiseError(
"Unexpected element "_L1 + tag);
2626 case QXmlStreamReader::EndElement :
2634void DomGradient::write(QXmlStreamWriter &writer,
const QString &tagName)
const
2636 writer.writeStartElement(tagName.isEmpty() ?
QStringLiteral(
"gradient") : tagName.toLower());
2638 if (hasAttributeStartX())
2639 writer.writeAttribute(u"startx"_s, QString::number(attributeStartX(),
'f', 15));
2641 if (hasAttributeStartY())
2642 writer.writeAttribute(u"starty"_s, QString::number(attributeStartY(),
'f', 15));
2644 if (hasAttributeEndX())
2645 writer.writeAttribute(u"endx"_s, QString::number(attributeEndX(),
'f', 15));
2647 if (hasAttributeEndY())
2648 writer.writeAttribute(u"endy"_s, QString::number(attributeEndY(),
'f', 15));
2650 if (hasAttributeCentralX())
2651 writer.writeAttribute(u"centralx"_s, QString::number(attributeCentralX(),
'f', 15));
2653 if (hasAttributeCentralY())
2654 writer.writeAttribute(u"centraly"_s, QString::number(attributeCentralY(),
'f', 15));
2656 if (hasAttributeFocalX())
2657 writer.writeAttribute(u"focalx"_s, QString::number(attributeFocalX(),
'f', 15));
2659 if (hasAttributeFocalY())
2660 writer.writeAttribute(u"focaly"_s, QString::number(attributeFocalY(),
'f', 15));
2662 if (hasAttributeRadius())
2663 writer.writeAttribute(u"radius"_s, QString::number(attributeRadius(),
'f', 15));
2665 if (hasAttributeAngle())
2666 writer.writeAttribute(u"angle"_s, QString::number(attributeAngle(),
'f', 15));
2668 if (hasAttributeType())
2669 writer.writeAttribute(u"type"_s, attributeType());
2671 if (hasAttributeSpread())
2672 writer.writeAttribute(u"spread"_s, attributeSpread());
2674 if (hasAttributeCoordinateMode())
2675 writer.writeAttribute(u"coordinatemode"_s, attributeCoordinateMode());
2677 for (DomGradientStop *v : m_gradientStop)
2678 v->write(writer, u"gradientstop"_s);
2680 writer.writeEndElement();
2709void DomBrush::read(QXmlStreamReader &reader)
2711 const QXmlStreamAttributes &attributes = reader.attributes();
2712 for (
const QXmlStreamAttribute &attribute : attributes) {
2713 const auto name = attribute.name();
2714 if (name == u"brushstyle"_s) {
2715 setAttributeBrushStyle(attribute.value().toString());
2718 reader.raiseError(
"Unexpected attribute "_L1 + name);
2721 while (!reader.hasError()) {
2722 switch (reader.readNext()) {
2723 case QXmlStreamReader::StartElement : {
2724 const auto tag = reader.name();
2725 if (!tag.compare(u"color"_s, Qt::CaseInsensitive)) {
2726 auto *v =
new DomColor();
2731 if (!tag.compare(u"texture"_s, Qt::CaseInsensitive)) {
2732 auto *v =
new DomProperty();
2734 setElementTexture(v);
2737 if (!tag.compare(u"gradient"_s, Qt::CaseInsensitive)) {
2738 auto *v =
new DomGradient();
2740 setElementGradient(v);
2743 reader.raiseError(
"Unexpected element "_L1 + tag);
2746 case QXmlStreamReader::EndElement :
3086void DomFont::read(QXmlStreamReader &reader)
3088 while (!reader.hasError()) {
3089 switch (reader.readNext()) {
3090 case QXmlStreamReader::StartElement : {
3091 const auto tag = reader.name();
3092 if (!tag.compare(u"family"_s, Qt::CaseInsensitive)) {
3093 setElementFamily(reader.readElementText());
3096 if (!tag.compare(u"pointsize"_s, Qt::CaseInsensitive)) {
3097 setElementPointSize(reader.readElementText().toInt());
3100 if (!tag.compare(u"weight"_s, Qt::CaseInsensitive)) {
3101 setElementWeight(reader.readElementText().toInt());
3104 if (!tag.compare(u"italic"_s, Qt::CaseInsensitive)) {
3105 setElementItalic(reader.readElementText() == u"true"_s);
3108 if (!tag.compare(u"bold"_s, Qt::CaseInsensitive)) {
3109 setElementBold(reader.readElementText() == u"true"_s);
3112 if (!tag.compare(u"underline"_s, Qt::CaseInsensitive)) {
3113 setElementUnderline(reader.readElementText() == u"true"_s);
3116 if (!tag.compare(u"strikeout"_s, Qt::CaseInsensitive)) {
3117 setElementStrikeOut(reader.readElementText() == u"true"_s);
3120 if (!tag.compare(u"antialiasing"_s, Qt::CaseInsensitive)) {
3121 setElementAntialiasing(reader.readElementText() == u"true"_s);
3124 if (!tag.compare(u"stylestrategy"_s, Qt::CaseInsensitive)) {
3125 setElementStyleStrategy(reader.readElementText());
3128 if (!tag.compare(u"kerning"_s, Qt::CaseInsensitive)) {
3129 setElementKerning(reader.readElementText() == u"true"_s);
3132 if (!tag.compare(u"hintingpreference"_s, Qt::CaseInsensitive)) {
3133 setElementHintingPreference(reader.readElementText());
3136 if (!tag.compare(u"fontweight"_s, Qt::CaseInsensitive)) {
3137 setElementFontWeight(reader.readElementText());
3140 reader.raiseError(
"Unexpected element "_L1 + tag);
3143 case QXmlStreamReader::EndElement :
3151void DomFont::write(QXmlStreamWriter &writer,
const QString &tagName)
const
3153 writer.writeStartElement(tagName.isEmpty() ?
QStringLiteral(
"font") : tagName.toLower());
3155 if (m_children & Family)
3156 writer.writeTextElement(u"family"_s, m_family);
3158 if (m_children & PointSize)
3159 writer.writeTextElement(u"pointsize"_s, QString::number(m_pointSize));
3161 if (m_children & Weight)
3162 writer.writeTextElement(u"weight"_s, QString::number(m_weight));
3164 if (m_children & Italic)
3165 writer.writeTextElement(u"italic"_s, (m_italic ? u"true"_s : u"false"_s));
3167 if (m_children & Bold)
3168 writer.writeTextElement(u"bold"_s, (m_bold ? u"true"_s : u"false"_s));
3170 if (m_children & Underline)
3171 writer.writeTextElement(u"underline"_s, (m_underline ? u"true"_s : u"false"_s));
3173 if (m_children & StrikeOut)
3174 writer.writeTextElement(u"strikeout"_s, (m_strikeOut ? u"true"_s : u"false"_s));
3176 if (m_children & Antialiasing)
3177 writer.writeTextElement(u"antialiasing"_s, (m_antialiasing ? u"true"_s : u"false"_s));
3179 if (m_children & StyleStrategy)
3180 writer.writeTextElement(u"stylestrategy"_s, m_styleStrategy);
3182 if (m_children & Kerning)
3183 writer.writeTextElement(u"kerning"_s, (m_kerning ? u"true"_s : u"false"_s));
3185 if (m_children & HintingPreference)
3186 writer.writeTextElement(u"hintingpreference"_s, m_hintingPreference);
3188 if (m_children & FontWeight)
3189 writer.writeTextElement(u"fontweight"_s, m_fontWeight);
3191 writer.writeEndElement();
3390void DomRect::read(QXmlStreamReader &reader)
3392 while (!reader.hasError()) {
3393 switch (reader.readNext()) {
3394 case QXmlStreamReader::StartElement : {
3395 const auto tag = reader.name();
3396 if (!tag.compare(u"x"_s, Qt::CaseInsensitive)) {
3397 setElementX(reader.readElementText().toInt());
3400 if (!tag.compare(u"y"_s, Qt::CaseInsensitive)) {
3401 setElementY(reader.readElementText().toInt());
3404 if (!tag.compare(u"width"_s, Qt::CaseInsensitive)) {
3405 setElementWidth(reader.readElementText().toInt());
3408 if (!tag.compare(u"height"_s, Qt::CaseInsensitive)) {
3409 setElementHeight(reader.readElementText().toInt());
3412 reader.raiseError(
"Unexpected element "_L1 + tag);
3415 case QXmlStreamReader::EndElement :
3534void DomSizePolicy::read(QXmlStreamReader &reader)
3536 const QXmlStreamAttributes &attributes = reader.attributes();
3537 for (
const QXmlStreamAttribute &attribute : attributes) {
3538 const auto name = attribute.name();
3539 if (name == u"hsizetype"_s) {
3540 setAttributeHSizeType(attribute.value().toString());
3543 if (name == u"vsizetype"_s) {
3544 setAttributeVSizeType(attribute.value().toString());
3547 reader.raiseError(
"Unexpected attribute "_L1 + name);
3550 while (!reader.hasError()) {
3551 switch (reader.readNext()) {
3552 case QXmlStreamReader::StartElement : {
3553 const auto tag = reader.name();
3554 if (!tag.compare(u"hsizetype"_s, Qt::CaseInsensitive)) {
3555 setElementHSizeType(reader.readElementText().toInt());
3558 if (!tag.compare(u"vsizetype"_s, Qt::CaseInsensitive)) {
3559 setElementVSizeType(reader.readElementText().toInt());
3562 if (!tag.compare(u"horstretch"_s, Qt::CaseInsensitive)) {
3563 setElementHorStretch(reader.readElementText().toInt());
3566 if (!tag.compare(u"verstretch"_s, Qt::CaseInsensitive)) {
3567 setElementVerStretch(reader.readElementText().toInt());
3570 reader.raiseError(
"Unexpected element "_L1 + tag);
3573 case QXmlStreamReader::EndElement :
3581void DomSizePolicy::write(QXmlStreamWriter &writer,
const QString &tagName)
const
3583 writer.writeStartElement(tagName.isEmpty() ?
QStringLiteral(
"sizepolicy") : tagName.toLower());
3585 if (hasAttributeHSizeType())
3586 writer.writeAttribute(u"hsizetype"_s, attributeHSizeType());
3588 if (hasAttributeVSizeType())
3589 writer.writeAttribute(u"vsizetype"_s, attributeVSizeType());
3591 if (m_children & HSizeType)
3592 writer.writeTextElement(u"hsizetype"_s, QString::number(m_hSizeType));
3594 if (m_children & VSizeType)
3595 writer.writeTextElement(u"vsizetype"_s, QString::number(m_vSizeType));
3597 if (m_children & HorStretch)
3598 writer.writeTextElement(u"horstretch"_s, QString::number(m_horStretch));
3600 if (m_children & VerStretch)
3601 writer.writeTextElement(u"verstretch"_s, QString::number(m_verStretch));
3603 writer.writeEndElement();
3714void DomDate::read(QXmlStreamReader &reader)
3716 while (!reader.hasError()) {
3717 switch (reader.readNext()) {
3718 case QXmlStreamReader::StartElement : {
3719 const auto tag = reader.name();
3720 if (!tag.compare(u"year"_s, Qt::CaseInsensitive)) {
3721 setElementYear(reader.readElementText().toInt());
3724 if (!tag.compare(u"month"_s, Qt::CaseInsensitive)) {
3725 setElementMonth(reader.readElementText().toInt());
3728 if (!tag.compare(u"day"_s, Qt::CaseInsensitive)) {
3729 setElementDay(reader.readElementText().toInt());
3732 reader.raiseError(
"Unexpected element "_L1 + tag);
3735 case QXmlStreamReader::EndElement :
3794void DomTime::read(QXmlStreamReader &reader)
3796 while (!reader.hasError()) {
3797 switch (reader.readNext()) {
3798 case QXmlStreamReader::StartElement : {
3799 const auto tag = reader.name();
3800 if (!tag.compare(u"hour"_s, Qt::CaseInsensitive)) {
3801 setElementHour(reader.readElementText().toInt());
3804 if (!tag.compare(u"minute"_s, Qt::CaseInsensitive)) {
3805 setElementMinute(reader.readElementText().toInt());
3808 if (!tag.compare(u"second"_s, Qt::CaseInsensitive)) {
3809 setElementSecond(reader.readElementText().toInt());
3812 reader.raiseError(
"Unexpected element "_L1 + tag);
3815 case QXmlStreamReader::EndElement :
3874void DomDateTime::read(QXmlStreamReader &reader)
3876 while (!reader.hasError()) {
3877 switch (reader.readNext()) {
3878 case QXmlStreamReader::StartElement : {
3879 const auto tag = reader.name();
3880 if (!tag.compare(u"hour"_s, Qt::CaseInsensitive)) {
3881 setElementHour(reader.readElementText().toInt());
3884 if (!tag.compare(u"minute"_s, Qt::CaseInsensitive)) {
3885 setElementMinute(reader.readElementText().toInt());
3888 if (!tag.compare(u"second"_s, Qt::CaseInsensitive)) {
3889 setElementSecond(reader.readElementText().toInt());
3892 if (!tag.compare(u"year"_s, Qt::CaseInsensitive)) {
3893 setElementYear(reader.readElementText().toInt());
3896 if (!tag.compare(u"month"_s, Qt::CaseInsensitive)) {
3897 setElementMonth(reader.readElementText().toInt());
3900 if (!tag.compare(u"day"_s, Qt::CaseInsensitive)) {
3901 setElementDay(reader.readElementText().toInt());
3904 reader.raiseError(
"Unexpected element "_L1 + tag);
3907 case QXmlStreamReader::EndElement :
3915void DomDateTime::write(QXmlStreamWriter &writer,
const QString &tagName)
const
3917 writer.writeStartElement(tagName.isEmpty() ?
QStringLiteral(
"datetime") : tagName.toLower());
3919 if (m_children & Hour)
3920 writer.writeTextElement(u"hour"_s, QString::number(m_hour));
3922 if (m_children & Minute)
3923 writer.writeTextElement(u"minute"_s, QString::number(m_minute));
3925 if (m_children & Second)
3926 writer.writeTextElement(u"second"_s, QString::number(m_second));
3928 if (m_children & Year)
3929 writer.writeTextElement(u"year"_s, QString::number(m_year));
3931 if (m_children & Month)
3932 writer.writeTextElement(u"month"_s, QString::number(m_month));
3934 if (m_children & Day)
3935 writer.writeTextElement(u"day"_s, QString::number(m_day));
3937 writer.writeEndElement();
4011void DomStringList::read(QXmlStreamReader &reader)
4013 const QXmlStreamAttributes &attributes = reader.attributes();
4014 for (
const QXmlStreamAttribute &attribute : attributes) {
4015 const auto name = attribute.name();
4016 if (name == u"notr"_s) {
4017 setAttributeNotr(attribute.value().toString());
4020 if (name == u"comment"_s) {
4021 setAttributeComment(attribute.value().toString());
4024 if (name == u"extracomment"_s) {
4025 setAttributeExtraComment(attribute.value().toString());
4028 if (name == u"id"_s) {
4029 setAttributeId(attribute.value().toString());
4032 reader.raiseError(
"Unexpected attribute "_L1 + name);
4035 while (!reader.hasError()) {
4036 switch (reader.readNext()) {
4037 case QXmlStreamReader::StartElement : {
4038 const auto tag = reader.name();
4039 if (!tag.compare(u"string"_s, Qt::CaseInsensitive)) {
4040 m_string.append(reader.readElementText());
4043 reader.raiseError(
"Unexpected element "_L1 + tag);
4046 case QXmlStreamReader::EndElement :
4054void DomStringList::write(QXmlStreamWriter &writer,
const QString &tagName)
const
4056 writer.writeStartElement(tagName.isEmpty() ?
QStringLiteral(
"stringlist") : tagName.toLower());
4058 if (hasAttributeNotr())
4059 writer.writeAttribute(u"notr"_s, attributeNotr());
4061 if (hasAttributeComment())
4062 writer.writeAttribute(u"comment"_s, attributeComment());
4064 if (hasAttributeExtraComment())
4065 writer.writeAttribute(u"extracomment"_s, attributeExtraComment());
4067 if (hasAttributeId())
4068 writer.writeAttribute(u"id"_s, attributeId());
4070 for (
const QString &v : m_string)
4071 writer.writeTextElement(u"string"_s, v);
4073 writer.writeEndElement();
4147void DomResourceIcon::read(QXmlStreamReader &reader)
4149 const QXmlStreamAttributes &attributes = reader.attributes();
4150 for (
const QXmlStreamAttribute &attribute : attributes) {
4151 const auto name = attribute.name();
4152 if (name == u"theme"_s) {
4153 setAttributeTheme(attribute.value().toString());
4156 if (name == u"resource"_s) {
4157 setAttributeResource(attribute.value().toString());
4160 reader.raiseError(
"Unexpected attribute "_L1 + name);
4163 while (!reader.hasError()) {
4164 switch (reader.readNext()) {
4165 case QXmlStreamReader::StartElement : {
4166 const auto tag = reader.name();
4167 if (!tag.compare(u"normaloff"_s, Qt::CaseInsensitive)) {
4168 auto *v =
new DomResourcePixmap();
4170 setElementNormalOff(v);
4173 if (!tag.compare(u"normalon"_s, Qt::CaseInsensitive)) {
4174 auto *v =
new DomResourcePixmap();
4176 setElementNormalOn(v);
4179 if (!tag.compare(u"disabledoff"_s, Qt::CaseInsensitive)) {
4180 auto *v =
new DomResourcePixmap();
4182 setElementDisabledOff(v);
4185 if (!tag.compare(u"disabledon"_s, Qt::CaseInsensitive)) {
4186 auto *v =
new DomResourcePixmap();
4188 setElementDisabledOn(v);
4191 if (!tag.compare(u"activeoff"_s, Qt::CaseInsensitive)) {
4192 auto *v =
new DomResourcePixmap();
4194 setElementActiveOff(v);
4197 if (!tag.compare(u"activeon"_s, Qt::CaseInsensitive)) {
4198 auto *v =
new DomResourcePixmap();
4200 setElementActiveOn(v);
4203 if (!tag.compare(u"selectedoff"_s, Qt::CaseInsensitive)) {
4204 auto *v =
new DomResourcePixmap();
4206 setElementSelectedOff(v);
4209 if (!tag.compare(u"selectedon"_s, Qt::CaseInsensitive)) {
4210 auto *v =
new DomResourcePixmap();
4212 setElementSelectedOn(v);
4215 reader.raiseError(
"Unexpected element "_L1 + tag);
4218 case QXmlStreamReader::EndElement :
4220 case QXmlStreamReader::Characters :
4221 if (!reader.isWhitespace())
4222 m_text.append(reader.text().toString());
4230void DomResourceIcon::write(QXmlStreamWriter &writer,
const QString &tagName)
const
4232 writer.writeStartElement(tagName.isEmpty() ?
QStringLiteral(
"resourceicon") : tagName.toLower());
4234 if (hasAttributeTheme())
4235 writer.writeAttribute(u"theme"_s, attributeTheme());
4237 if (hasAttributeResource())
4238 writer.writeAttribute(u"resource"_s, attributeResource());
4240 if (m_children & NormalOff)
4241 m_normalOff->write(writer, u"normaloff"_s);
4243 if (m_children & NormalOn)
4244 m_normalOn->write(writer, u"normalon"_s);
4246 if (m_children & DisabledOff)
4247 m_disabledOff->write(writer, u"disabledoff"_s);
4249 if (m_children & DisabledOn)
4250 m_disabledOn->write(writer, u"disabledon"_s);
4252 if (m_children & ActiveOff)
4253 m_activeOff->write(writer, u"activeoff"_s);
4255 if (m_children & ActiveOn)
4256 m_activeOn->write(writer, u"activeon"_s);
4258 if (m_children & SelectedOff)
4259 m_selectedOff->write(writer, u"selectedoff"_s);
4261 if (m_children & SelectedOn)
4262 m_selectedOn->write(writer, u"selectedon"_s);
4264 if (!m_text.isEmpty())
4265 writer.writeCharacters(m_text);
4267 writer.writeEndElement();
4448void DomString::read(QXmlStreamReader &reader)
4450 const QXmlStreamAttributes &attributes = reader.attributes();
4451 for (
const QXmlStreamAttribute &attribute : attributes) {
4452 const auto name = attribute.name();
4453 if (name == u"notr"_s) {
4454 setAttributeNotr(attribute.value().toString());
4457 if (name == u"comment"_s) {
4458 setAttributeComment(attribute.value().toString());
4461 if (name == u"extracomment"_s) {
4462 setAttributeExtraComment(attribute.value().toString());
4465 if (name == u"id"_s) {
4466 setAttributeId(attribute.value().toString());
4469 reader.raiseError(
"Unexpected attribute "_L1 + name);
4472 while (!reader.hasError()) {
4473 switch (reader.readNext()) {
4474 case QXmlStreamReader::StartElement : {
4475 const auto tag = reader.name();
4476 reader.raiseError(
"Unexpected element "_L1 + tag);
4479 case QXmlStreamReader::EndElement :
4481 case QXmlStreamReader::Characters :
4482 if (!reader.isWhitespace())
4483 m_text.append(reader.text().toString());
4491void DomString::write(QXmlStreamWriter &writer,
const QString &tagName)
const
4493 writer.writeStartElement(tagName.isEmpty() ?
QStringLiteral(
"string") : tagName.toLower());
4495 if (hasAttributeNotr())
4496 writer.writeAttribute(u"notr"_s, attributeNotr());
4498 if (hasAttributeComment())
4499 writer.writeAttribute(u"comment"_s, attributeComment());
4501 if (hasAttributeExtraComment())
4502 writer.writeAttribute(u"extracomment"_s, attributeExtraComment());
4504 if (hasAttributeId())
4505 writer.writeAttribute(u"id"_s, attributeId());
4507 if (!m_text.isEmpty())
4508 writer.writeCharacters(m_text);
4510 writer.writeEndElement();
4577void DomRectF::read(QXmlStreamReader &reader)
4579 while (!reader.hasError()) {
4580 switch (reader.readNext()) {
4581 case QXmlStreamReader::StartElement : {
4582 const auto tag = reader.name();
4583 if (!tag.compare(u"x"_s, Qt::CaseInsensitive)) {
4584 setElementX(reader.readElementText().toDouble());
4587 if (!tag.compare(u"y"_s, Qt::CaseInsensitive)) {
4588 setElementY(reader.readElementText().toDouble());
4591 if (!tag.compare(u"width"_s, Qt::CaseInsensitive)) {
4592 setElementWidth(reader.readElementText().toDouble());
4595 if (!tag.compare(u"height"_s, Qt::CaseInsensitive)) {
4596 setElementHeight(reader.readElementText().toDouble());
4599 reader.raiseError(
"Unexpected element "_L1 + tag);
4602 case QXmlStreamReader::EndElement :
4610void DomRectF::write(QXmlStreamWriter &writer,
const QString &tagName)
const
4612 writer.writeStartElement(tagName.isEmpty() ?
QStringLiteral(
"rectf") : tagName.toLower());
4615 writer.writeTextElement(u"x"_s, QString::number(m_x,
'f', 15));
4618 writer.writeTextElement(u"y"_s, QString::number(m_y,
'f', 15));
4620 if (m_children & Width)
4621 writer.writeTextElement(u"width"_s, QString::number(m_width,
'f', 15));
4623 if (m_children & Height)
4624 writer.writeTextElement(u"height"_s, QString::number(m_height,
'f', 15));
4626 writer.writeEndElement();
4920void DomProperty::read(QXmlStreamReader &reader)
4922 const QXmlStreamAttributes &attributes = reader.attributes();
4923 for (
const QXmlStreamAttribute &attribute : attributes) {
4924 const auto name = attribute.name();
4925 if (name == u"name"_s) {
4926 setAttributeName(attribute.value().toString());
4929 if (name == u"stdset"_s) {
4930 setAttributeStdset(attribute.value().toInt());
4933 reader.raiseError(
"Unexpected attribute "_L1 + name);
4936 while (!reader.hasError()) {
4937 switch (reader.readNext()) {
4938 case QXmlStreamReader::StartElement : {
4939 const auto tag = reader.name();
4940 if (!tag.compare(u"bool"_s, Qt::CaseInsensitive)) {
4941 setElementBool(reader.readElementText());
4944 if (!tag.compare(u"color"_s, Qt::CaseInsensitive)) {
4945 auto *v =
new DomColor();
4950 if (!tag.compare(u"cstring"_s, Qt::CaseInsensitive)) {
4951 setElementCstring(reader.readElementText());
4954 if (!tag.compare(u"cursor"_s, Qt::CaseInsensitive)) {
4955 setElementCursor(reader.readElementText().toInt());
4958 if (!tag.compare(u"cursorshape"_s, Qt::CaseInsensitive)) {
4959 setElementCursorShape(reader.readElementText());
4962 if (!tag.compare(u"enum"_s, Qt::CaseInsensitive)) {
4963 setElementEnum(reader.readElementText());
4966 if (!tag.compare(u"font"_s, Qt::CaseInsensitive)) {
4967 auto *v =
new DomFont();
4972 if (!tag.compare(u"iconset"_s, Qt::CaseInsensitive)) {
4973 auto *v =
new DomResourceIcon();
4975 setElementIconSet(v);
4978 if (!tag.compare(u"pixmap"_s, Qt::CaseInsensitive)) {
4979 auto *v =
new DomResourcePixmap();
4981 setElementPixmap(v);
4984 if (!tag.compare(u"palette"_s, Qt::CaseInsensitive)) {
4985 auto *v =
new DomPalette();
4987 setElementPalette(v);
4990 if (!tag.compare(u"point"_s, Qt::CaseInsensitive)) {
4991 auto *v =
new DomPoint();
4996 if (!tag.compare(u"rect"_s, Qt::CaseInsensitive)) {
4997 auto *v =
new DomRect();
5002 if (!tag.compare(u"set"_s, Qt::CaseInsensitive)) {
5003 setElementSet(reader.readElementText());
5006 if (!tag.compare(u"locale"_s, Qt::CaseInsensitive)) {
5007 auto *v =
new DomLocale();
5009 setElementLocale(v);
5012 if (!tag.compare(u"sizepolicy"_s, Qt::CaseInsensitive)) {
5013 auto *v =
new DomSizePolicy();
5015 setElementSizePolicy(v);
5018 if (!tag.compare(u"size"_s, Qt::CaseInsensitive)) {
5019 auto *v =
new DomSize();
5024 if (!tag.compare(u"string"_s, Qt::CaseInsensitive)) {
5025 auto *v =
new DomString();
5027 setElementString(v);
5030 if (!tag.compare(u"stringlist"_s, Qt::CaseInsensitive)) {
5031 auto *v =
new DomStringList();
5033 setElementStringList(v);
5036 if (!tag.compare(u"number"_s, Qt::CaseInsensitive)) {
5037 setElementNumber(reader.readElementText().toInt());
5040 if (!tag.compare(u"float"_s, Qt::CaseInsensitive)) {
5041 setElementFloat(reader.readElementText().toFloat());
5044 if (!tag.compare(u"double"_s, Qt::CaseInsensitive)) {
5045 setElementDouble(reader.readElementText().toDouble());
5048 if (!tag.compare(u"date"_s, Qt::CaseInsensitive)) {
5049 auto *v =
new DomDate();
5054 if (!tag.compare(u"time"_s, Qt::CaseInsensitive)) {
5055 auto *v =
new DomTime();
5060 if (!tag.compare(u"datetime"_s, Qt::CaseInsensitive)) {
5061 auto *v =
new DomDateTime();
5063 setElementDateTime(v);
5066 if (!tag.compare(u"pointf"_s, Qt::CaseInsensitive)) {
5067 auto *v =
new DomPointF();
5069 setElementPointF(v);
5072 if (!tag.compare(u"rectf"_s, Qt::CaseInsensitive)) {
5073 auto *v =
new DomRectF();
5078 if (!tag.compare(u"sizef"_s, Qt::CaseInsensitive)) {
5079 auto *v =
new DomSizeF();
5084 if (!tag.compare(u"longlong"_s, Qt::CaseInsensitive)) {
5085 setElementLongLong(reader.readElementText().toLongLong());
5088 if (!tag.compare(u"char"_s, Qt::CaseInsensitive)) {
5089 auto *v =
new DomChar();
5094 if (!tag.compare(u"url"_s, Qt::CaseInsensitive)) {
5095 auto *v =
new DomUrl();
5100 if (!tag.compare(u"uint"_s, Qt::CaseInsensitive)) {
5101 setElementUInt(reader.readElementText().toUInt());
5104 if (!tag.compare(u"ulonglong"_s, Qt::CaseInsensitive)) {
5105 setElementULongLong(reader.readElementText().toULongLong());
5108 if (!tag.compare(u"brush"_s, Qt::CaseInsensitive)) {
5109 auto *v =
new DomBrush();
5114 reader.raiseError(
"Unexpected element "_L1 + tag);
5117 case QXmlStreamReader::EndElement :
5125void DomProperty::write(QXmlStreamWriter &writer,
const QString &tagName)
const
5127 writer.writeStartElement(tagName.isEmpty() ?
QStringLiteral(
"property") : tagName.toLower());
5129 if (hasAttributeName())
5130 writer.writeAttribute(u"name"_s, attributeName());
5132 if (hasAttributeStdset())
5133 writer.writeAttribute(u"stdset"_s, QString::number(attributeStdset()));
5137 writer.writeTextElement(u"bool"_s, elementBool());
5141 if (m_color !=
nullptr)
5142 m_color->write(writer, u"color"_s);
5146 writer.writeTextElement(u"cstring"_s, elementCstring());
5150 writer.writeTextElement(u"cursor"_s, QString::number(elementCursor()));
5154 writer.writeTextElement(u"cursorShape"_s, elementCursorShape());
5158 writer.writeTextElement(u"enum"_s, elementEnum());
5162 if (m_font !=
nullptr)
5163 m_font->write(writer, u"font"_s);
5167 if (m_iconSet !=
nullptr)
5168 m_iconSet->write(writer, u"iconset"_s);
5172 if (m_pixmap !=
nullptr)
5173 m_pixmap->write(writer, u"pixmap"_s);
5177 if (m_palette !=
nullptr)
5178 m_palette->write(writer, u"palette"_s);
5182 if (m_point !=
nullptr)
5183 m_point->write(writer, u"point"_s);
5187 if (m_rect !=
nullptr)
5188 m_rect->write(writer, u"rect"_s);
5192 writer.writeTextElement(u"set"_s, elementSet());
5196 if (m_locale !=
nullptr)
5197 m_locale->write(writer, u"locale"_s);
5201 if (m_sizePolicy !=
nullptr)
5202 m_sizePolicy->write(writer, u"sizepolicy"_s);
5206 if (m_size !=
nullptr)
5207 m_size->write(writer, u"size"_s);
5211 if (m_string !=
nullptr)
5212 m_string->write(writer, u"string"_s);
5216 if (m_stringList !=
nullptr)
5217 m_stringList->write(writer, u"stringlist"_s);
5221 writer.writeTextElement(u"number"_s, QString::number(elementNumber()));
5225 writer.writeTextElement(u"float"_s, QString::number(elementFloat(),
'f', 8));
5229 writer.writeTextElement(u"double"_s, QString::number(elementDouble(),
'f', 15));
5233 if (m_date !=
nullptr)
5234 m_date->write(writer, u"date"_s);
5238 if (m_time !=
nullptr)
5239 m_time->write(writer, u"time"_s);
5243 if (m_dateTime !=
nullptr)
5244 m_dateTime->write(writer, u"datetime"_s);
5248 if (m_pointF !=
nullptr)
5249 m_pointF->write(writer, u"pointf"_s);
5253 if (m_rectF !=
nullptr)
5254 m_rectF->write(writer, u"rectf"_s);
5258 if (m_sizeF !=
nullptr)
5259 m_sizeF->write(writer, u"sizef"_s);
5263 writer.writeTextElement(u"longLong"_s, QString::number(elementLongLong()));
5267 if (m_char !=
nullptr)
5268 m_char->write(writer, u"char"_s);
5272 if (m_url !=
nullptr)
5273 m_url->write(writer, u"url"_s);
5277 writer.writeTextElement(u"UInt"_s, QString::number(elementUInt()));
5281 writer.writeTextElement(u"uLongLong"_s, QString::number(elementULongLong()));
5285 if (m_brush !=
nullptr)
5286 m_brush->write(writer, u"brush"_s);
5292 writer.writeEndElement();
5723void DomConnection::read(QXmlStreamReader &reader)
5725 while (!reader.hasError()) {
5726 switch (reader.readNext()) {
5727 case QXmlStreamReader::StartElement : {
5728 const auto tag = reader.name();
5729 if (!tag.compare(u"sender"_s, Qt::CaseInsensitive)) {
5730 setElementSender(reader.readElementText());
5733 if (!tag.compare(u"signal"_s, Qt::CaseInsensitive)) {
5734 setElementSignal(reader.readElementText());
5737 if (!tag.compare(u"receiver"_s, Qt::CaseInsensitive)) {
5738 setElementReceiver(reader.readElementText());
5741 if (!tag.compare(u"slot"_s, Qt::CaseInsensitive)) {
5742 setElementSlot(reader.readElementText());
5745 if (!tag.compare(u"hints"_s, Qt::CaseInsensitive)) {
5746 auto *v =
new DomConnectionHints();
5751 reader.raiseError(
"Unexpected element "_L1 + tag);
5754 case QXmlStreamReader::EndElement :
5897void DomConnectionHint::read(QXmlStreamReader &reader)
5899 const QXmlStreamAttributes &attributes = reader.attributes();
5900 for (
const QXmlStreamAttribute &attribute : attributes) {
5901 const auto name = attribute.name();
5902 if (name == u"type"_s) {
5903 setAttributeType(attribute.value().toString());
5906 reader.raiseError(
"Unexpected attribute "_L1 + name);
5909 while (!reader.hasError()) {
5910 switch (reader.readNext()) {
5911 case QXmlStreamReader::StartElement : {
5912 const auto tag = reader.name();
5913 if (!tag.compare(u"x"_s, Qt::CaseInsensitive)) {
5914 setElementX(reader.readElementText().toInt());
5917 if (!tag.compare(u"y"_s, Qt::CaseInsensitive)) {
5918 setElementY(reader.readElementText().toInt());
5921 reader.raiseError(
"Unexpected element "_L1 + tag);
5924 case QXmlStreamReader::EndElement :