11133 lines
291 KiB
C++
11133 lines
291 KiB
C++
|
/****************************************************************************
|
||
|
**
|
||
|
** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
|
||
|
** All rights reserved.
|
||
|
** Contact: Nokia Corporation (qt-info@nokia.com)
|
||
|
**
|
||
|
** This file is part of the tools applications of the Qt Toolkit.
|
||
|
**
|
||
|
** $QT_BEGIN_LICENSE:LGPL$
|
||
|
** Commercial Usage
|
||
|
** Licensees holding valid Qt Commercial licenses may use this file in
|
||
|
** accordance with the Qt Commercial License Agreement provided with the
|
||
|
** Software or, alternatively, in accordance with the terms contained in
|
||
|
** a written agreement between you and Nokia.
|
||
|
**
|
||
|
** GNU Lesser General Public License Usage
|
||
|
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||
|
** General Public License version 2.1 as published by the Free Software
|
||
|
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||
|
** packaging of this file. Please review the following information to
|
||
|
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||
|
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||
|
**
|
||
|
** In addition, as a special exception, Nokia gives you certain additional
|
||
|
** rights. These rights are described in the Nokia Qt LGPL Exception
|
||
|
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||
|
**
|
||
|
** GNU General Public License Usage
|
||
|
** Alternatively, this file may be used under the terms of the GNU
|
||
|
** General Public License version 3.0 as published by the Free Software
|
||
|
** Foundation and appearing in the file LICENSE.GPL included in the
|
||
|
** packaging of this file. Please review the following information to
|
||
|
** ensure the GNU General Public License version 3.0 requirements will be
|
||
|
** met: http://www.gnu.org/copyleft/gpl.html.
|
||
|
**
|
||
|
** If you have questions regarding the use of this file, please contact
|
||
|
** Nokia at qt-info@nokia.com.
|
||
|
** $QT_END_LICENSE$
|
||
|
**
|
||
|
****************************************************************************/
|
||
|
#include "ui4_p.h"
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
#include <QtXml/QDomElement>
|
||
|
#endif
|
||
|
|
||
|
QT_BEGIN_NAMESPACE
|
||
|
#ifdef QFORMINTERNAL_NAMESPACE
|
||
|
using namespace QFormInternal;
|
||
|
#endif
|
||
|
|
||
|
/*******************************************************************************
|
||
|
** Implementations
|
||
|
*/
|
||
|
|
||
|
void DomUI::clear(bool clear_all)
|
||
|
{
|
||
|
delete m_widget;
|
||
|
delete m_layoutDefault;
|
||
|
delete m_layoutFunction;
|
||
|
delete m_customWidgets;
|
||
|
delete m_tabStops;
|
||
|
delete m_images;
|
||
|
delete m_includes;
|
||
|
delete m_resources;
|
||
|
delete m_connections;
|
||
|
delete m_designerdata;
|
||
|
delete m_slots;
|
||
|
delete m_buttonGroups;
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
m_has_attr_version = false;
|
||
|
m_has_attr_language = false;
|
||
|
m_has_attr_displayname = false;
|
||
|
m_has_attr_stdsetdef = false;
|
||
|
m_attr_stdsetdef = 0;
|
||
|
m_has_attr_stdSetDef = false;
|
||
|
m_attr_stdSetDef = 0;
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
m_widget = 0;
|
||
|
m_layoutDefault = 0;
|
||
|
m_layoutFunction = 0;
|
||
|
m_customWidgets = 0;
|
||
|
m_tabStops = 0;
|
||
|
m_images = 0;
|
||
|
m_includes = 0;
|
||
|
m_resources = 0;
|
||
|
m_connections = 0;
|
||
|
m_designerdata = 0;
|
||
|
m_slots = 0;
|
||
|
m_buttonGroups = 0;
|
||
|
}
|
||
|
|
||
|
DomUI::DomUI()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_has_attr_version = false;
|
||
|
m_has_attr_language = false;
|
||
|
m_has_attr_displayname = false;
|
||
|
m_has_attr_stdsetdef = false;
|
||
|
m_attr_stdsetdef = 0;
|
||
|
m_has_attr_stdSetDef = false;
|
||
|
m_attr_stdSetDef = 0;
|
||
|
m_widget = 0;
|
||
|
m_layoutDefault = 0;
|
||
|
m_layoutFunction = 0;
|
||
|
m_customWidgets = 0;
|
||
|
m_tabStops = 0;
|
||
|
m_images = 0;
|
||
|
m_includes = 0;
|
||
|
m_resources = 0;
|
||
|
m_connections = 0;
|
||
|
m_designerdata = 0;
|
||
|
m_slots = 0;
|
||
|
m_buttonGroups = 0;
|
||
|
}
|
||
|
|
||
|
DomUI::~DomUI()
|
||
|
{
|
||
|
delete m_widget;
|
||
|
delete m_layoutDefault;
|
||
|
delete m_layoutFunction;
|
||
|
delete m_customWidgets;
|
||
|
delete m_tabStops;
|
||
|
delete m_images;
|
||
|
delete m_includes;
|
||
|
delete m_resources;
|
||
|
delete m_connections;
|
||
|
delete m_designerdata;
|
||
|
delete m_slots;
|
||
|
delete m_buttonGroups;
|
||
|
}
|
||
|
|
||
|
void DomUI::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
foreach (const QXmlStreamAttribute &attribute, reader.attributes()) {
|
||
|
QStringRef name = attribute.name();
|
||
|
if (name == QLatin1String("version")) {
|
||
|
setAttributeVersion(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
if (name == QLatin1String("language")) {
|
||
|
setAttributeLanguage(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
if (name == QLatin1String("displayname")) {
|
||
|
setAttributeDisplayname(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
if (name == QLatin1String("stdsetdef")) {
|
||
|
setAttributeStdsetdef(attribute.value().toString().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (name == QLatin1String("stdSetDef")) {
|
||
|
setAttributeStdSetDef(attribute.value().toString().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected attribute ") + name.toString());
|
||
|
}
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("author")) {
|
||
|
setElementAuthor(reader.readElementText());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("comment")) {
|
||
|
setElementComment(reader.readElementText());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("exportmacro")) {
|
||
|
setElementExportMacro(reader.readElementText());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("class")) {
|
||
|
setElementClass(reader.readElementText());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("widget")) {
|
||
|
DomWidget *v = new DomWidget();
|
||
|
v->read(reader);
|
||
|
setElementWidget(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("layoutdefault")) {
|
||
|
DomLayoutDefault *v = new DomLayoutDefault();
|
||
|
v->read(reader);
|
||
|
setElementLayoutDefault(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("layoutfunction")) {
|
||
|
DomLayoutFunction *v = new DomLayoutFunction();
|
||
|
v->read(reader);
|
||
|
setElementLayoutFunction(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("pixmapfunction")) {
|
||
|
setElementPixmapFunction(reader.readElementText());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("customwidgets")) {
|
||
|
DomCustomWidgets *v = new DomCustomWidgets();
|
||
|
v->read(reader);
|
||
|
setElementCustomWidgets(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("tabstops")) {
|
||
|
DomTabStops *v = new DomTabStops();
|
||
|
v->read(reader);
|
||
|
setElementTabStops(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("images")) {
|
||
|
DomImages *v = new DomImages();
|
||
|
v->read(reader);
|
||
|
setElementImages(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("includes")) {
|
||
|
DomIncludes *v = new DomIncludes();
|
||
|
v->read(reader);
|
||
|
setElementIncludes(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("resources")) {
|
||
|
DomResources *v = new DomResources();
|
||
|
v->read(reader);
|
||
|
setElementResources(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("connections")) {
|
||
|
DomConnections *v = new DomConnections();
|
||
|
v->read(reader);
|
||
|
setElementConnections(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("designerdata")) {
|
||
|
DomDesignerData *v = new DomDesignerData();
|
||
|
v->read(reader);
|
||
|
setElementDesignerdata(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("slots")) {
|
||
|
DomSlots *v = new DomSlots();
|
||
|
v->read(reader);
|
||
|
setElementSlots(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("buttongroups")) {
|
||
|
DomButtonGroups *v = new DomButtonGroups();
|
||
|
v->read(reader);
|
||
|
setElementButtonGroups(v);
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomUI::read(const QDomElement &node)
|
||
|
{
|
||
|
if (node.hasAttribute(QLatin1String("version")))
|
||
|
setAttributeVersion(node.attribute(QLatin1String("version")));
|
||
|
if (node.hasAttribute(QLatin1String("language")))
|
||
|
setAttributeLanguage(node.attribute(QLatin1String("language")));
|
||
|
if (node.hasAttribute(QLatin1String("displayname")))
|
||
|
setAttributeDisplayname(node.attribute(QLatin1String("displayname")));
|
||
|
if (node.hasAttribute(QLatin1String("stdsetdef")))
|
||
|
setAttributeStdsetdef(node.attribute(QLatin1String("stdsetdef")).toInt());
|
||
|
if (node.hasAttribute(QLatin1String("stdSetDef")))
|
||
|
setAttributeStdSetDef(node.attribute(QLatin1String("stdSetDef")).toInt());
|
||
|
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("author")) {
|
||
|
setElementAuthor(e.text());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("comment")) {
|
||
|
setElementComment(e.text());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("exportmacro")) {
|
||
|
setElementExportMacro(e.text());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("class")) {
|
||
|
setElementClass(e.text());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("widget")) {
|
||
|
DomWidget *v = new DomWidget();
|
||
|
v->read(e);
|
||
|
setElementWidget(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("layoutdefault")) {
|
||
|
DomLayoutDefault *v = new DomLayoutDefault();
|
||
|
v->read(e);
|
||
|
setElementLayoutDefault(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("layoutfunction")) {
|
||
|
DomLayoutFunction *v = new DomLayoutFunction();
|
||
|
v->read(e);
|
||
|
setElementLayoutFunction(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("pixmapfunction")) {
|
||
|
setElementPixmapFunction(e.text());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("customwidgets")) {
|
||
|
DomCustomWidgets *v = new DomCustomWidgets();
|
||
|
v->read(e);
|
||
|
setElementCustomWidgets(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("tabstops")) {
|
||
|
DomTabStops *v = new DomTabStops();
|
||
|
v->read(e);
|
||
|
setElementTabStops(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("images")) {
|
||
|
DomImages *v = new DomImages();
|
||
|
v->read(e);
|
||
|
setElementImages(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("includes")) {
|
||
|
DomIncludes *v = new DomIncludes();
|
||
|
v->read(e);
|
||
|
setElementIncludes(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("resources")) {
|
||
|
DomResources *v = new DomResources();
|
||
|
v->read(e);
|
||
|
setElementResources(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("connections")) {
|
||
|
DomConnections *v = new DomConnections();
|
||
|
v->read(e);
|
||
|
setElementConnections(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("designerdata")) {
|
||
|
DomDesignerData *v = new DomDesignerData();
|
||
|
v->read(e);
|
||
|
setElementDesignerdata(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("slots")) {
|
||
|
DomSlots *v = new DomSlots();
|
||
|
v->read(e);
|
||
|
setElementSlots(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("buttongroups")) {
|
||
|
DomButtonGroups *v = new DomButtonGroups();
|
||
|
v->read(e);
|
||
|
setElementButtonGroups(v);
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomUI::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("ui") : tagName.toLower());
|
||
|
|
||
|
if (hasAttributeVersion())
|
||
|
writer.writeAttribute(QLatin1String("version"), attributeVersion());
|
||
|
|
||
|
if (hasAttributeLanguage())
|
||
|
writer.writeAttribute(QLatin1String("language"), attributeLanguage());
|
||
|
|
||
|
if (hasAttributeDisplayname())
|
||
|
writer.writeAttribute(QLatin1String("displayname"), attributeDisplayname());
|
||
|
|
||
|
if (hasAttributeStdsetdef())
|
||
|
writer.writeAttribute(QLatin1String("stdsetdef"), QString::number(attributeStdsetdef()));
|
||
|
|
||
|
if (hasAttributeStdSetDef())
|
||
|
writer.writeAttribute(QLatin1String("stdsetdef"), QString::number(attributeStdSetDef()));
|
||
|
|
||
|
if (m_children & Author) {
|
||
|
writer.writeTextElement(QLatin1String("author"), m_author);
|
||
|
}
|
||
|
|
||
|
if (m_children & Comment) {
|
||
|
writer.writeTextElement(QLatin1String("comment"), m_comment);
|
||
|
}
|
||
|
|
||
|
if (m_children & ExportMacro) {
|
||
|
writer.writeTextElement(QLatin1String("exportmacro"), m_exportMacro);
|
||
|
}
|
||
|
|
||
|
if (m_children & Class) {
|
||
|
writer.writeTextElement(QLatin1String("class"), m_class);
|
||
|
}
|
||
|
|
||
|
if (m_children & Widget) {
|
||
|
m_widget->write(writer, QLatin1String("widget"));
|
||
|
}
|
||
|
|
||
|
if (m_children & LayoutDefault) {
|
||
|
m_layoutDefault->write(writer, QLatin1String("layoutdefault"));
|
||
|
}
|
||
|
|
||
|
if (m_children & LayoutFunction) {
|
||
|
m_layoutFunction->write(writer, QLatin1String("layoutfunction"));
|
||
|
}
|
||
|
|
||
|
if (m_children & PixmapFunction) {
|
||
|
writer.writeTextElement(QLatin1String("pixmapfunction"), m_pixmapFunction);
|
||
|
}
|
||
|
|
||
|
if (m_children & CustomWidgets) {
|
||
|
m_customWidgets->write(writer, QLatin1String("customwidgets"));
|
||
|
}
|
||
|
|
||
|
if (m_children & TabStops) {
|
||
|
m_tabStops->write(writer, QLatin1String("tabstops"));
|
||
|
}
|
||
|
|
||
|
if (m_children & Images) {
|
||
|
m_images->write(writer, QLatin1String("images"));
|
||
|
}
|
||
|
|
||
|
if (m_children & Includes) {
|
||
|
m_includes->write(writer, QLatin1String("includes"));
|
||
|
}
|
||
|
|
||
|
if (m_children & Resources) {
|
||
|
m_resources->write(writer, QLatin1String("resources"));
|
||
|
}
|
||
|
|
||
|
if (m_children & Connections) {
|
||
|
m_connections->write(writer, QLatin1String("connections"));
|
||
|
}
|
||
|
|
||
|
if (m_children & Designerdata) {
|
||
|
m_designerdata->write(writer, QLatin1String("designerdata"));
|
||
|
}
|
||
|
|
||
|
if (m_children & Slots) {
|
||
|
m_slots->write(writer, QLatin1String("slots"));
|
||
|
}
|
||
|
|
||
|
if (m_children & ButtonGroups) {
|
||
|
m_buttonGroups->write(writer, QLatin1String("buttongroups"));
|
||
|
}
|
||
|
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomUI::setElementAuthor(const QString& a)
|
||
|
{
|
||
|
m_children |= Author;
|
||
|
m_author = a;
|
||
|
}
|
||
|
|
||
|
void DomUI::setElementComment(const QString& a)
|
||
|
{
|
||
|
m_children |= Comment;
|
||
|
m_comment = a;
|
||
|
}
|
||
|
|
||
|
void DomUI::setElementExportMacro(const QString& a)
|
||
|
{
|
||
|
m_children |= ExportMacro;
|
||
|
m_exportMacro = a;
|
||
|
}
|
||
|
|
||
|
void DomUI::setElementClass(const QString& a)
|
||
|
{
|
||
|
m_children |= Class;
|
||
|
m_class = a;
|
||
|
}
|
||
|
|
||
|
DomWidget* DomUI::takeElementWidget()
|
||
|
{
|
||
|
DomWidget* a = m_widget;
|
||
|
m_widget = 0;
|
||
|
m_children ^= Widget;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomUI::setElementWidget(DomWidget* a)
|
||
|
{
|
||
|
delete m_widget;
|
||
|
m_children |= Widget;
|
||
|
m_widget = a;
|
||
|
}
|
||
|
|
||
|
DomLayoutDefault* DomUI::takeElementLayoutDefault()
|
||
|
{
|
||
|
DomLayoutDefault* a = m_layoutDefault;
|
||
|
m_layoutDefault = 0;
|
||
|
m_children ^= LayoutDefault;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomUI::setElementLayoutDefault(DomLayoutDefault* a)
|
||
|
{
|
||
|
delete m_layoutDefault;
|
||
|
m_children |= LayoutDefault;
|
||
|
m_layoutDefault = a;
|
||
|
}
|
||
|
|
||
|
DomLayoutFunction* DomUI::takeElementLayoutFunction()
|
||
|
{
|
||
|
DomLayoutFunction* a = m_layoutFunction;
|
||
|
m_layoutFunction = 0;
|
||
|
m_children ^= LayoutFunction;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomUI::setElementLayoutFunction(DomLayoutFunction* a)
|
||
|
{
|
||
|
delete m_layoutFunction;
|
||
|
m_children |= LayoutFunction;
|
||
|
m_layoutFunction = a;
|
||
|
}
|
||
|
|
||
|
void DomUI::setElementPixmapFunction(const QString& a)
|
||
|
{
|
||
|
m_children |= PixmapFunction;
|
||
|
m_pixmapFunction = a;
|
||
|
}
|
||
|
|
||
|
DomCustomWidgets* DomUI::takeElementCustomWidgets()
|
||
|
{
|
||
|
DomCustomWidgets* a = m_customWidgets;
|
||
|
m_customWidgets = 0;
|
||
|
m_children ^= CustomWidgets;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomUI::setElementCustomWidgets(DomCustomWidgets* a)
|
||
|
{
|
||
|
delete m_customWidgets;
|
||
|
m_children |= CustomWidgets;
|
||
|
m_customWidgets = a;
|
||
|
}
|
||
|
|
||
|
DomTabStops* DomUI::takeElementTabStops()
|
||
|
{
|
||
|
DomTabStops* a = m_tabStops;
|
||
|
m_tabStops = 0;
|
||
|
m_children ^= TabStops;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomUI::setElementTabStops(DomTabStops* a)
|
||
|
{
|
||
|
delete m_tabStops;
|
||
|
m_children |= TabStops;
|
||
|
m_tabStops = a;
|
||
|
}
|
||
|
|
||
|
DomImages* DomUI::takeElementImages()
|
||
|
{
|
||
|
DomImages* a = m_images;
|
||
|
m_images = 0;
|
||
|
m_children ^= Images;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomUI::setElementImages(DomImages* a)
|
||
|
{
|
||
|
delete m_images;
|
||
|
m_children |= Images;
|
||
|
m_images = a;
|
||
|
}
|
||
|
|
||
|
DomIncludes* DomUI::takeElementIncludes()
|
||
|
{
|
||
|
DomIncludes* a = m_includes;
|
||
|
m_includes = 0;
|
||
|
m_children ^= Includes;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomUI::setElementIncludes(DomIncludes* a)
|
||
|
{
|
||
|
delete m_includes;
|
||
|
m_children |= Includes;
|
||
|
m_includes = a;
|
||
|
}
|
||
|
|
||
|
DomResources* DomUI::takeElementResources()
|
||
|
{
|
||
|
DomResources* a = m_resources;
|
||
|
m_resources = 0;
|
||
|
m_children ^= Resources;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomUI::setElementResources(DomResources* a)
|
||
|
{
|
||
|
delete m_resources;
|
||
|
m_children |= Resources;
|
||
|
m_resources = a;
|
||
|
}
|
||
|
|
||
|
DomConnections* DomUI::takeElementConnections()
|
||
|
{
|
||
|
DomConnections* a = m_connections;
|
||
|
m_connections = 0;
|
||
|
m_children ^= Connections;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomUI::setElementConnections(DomConnections* a)
|
||
|
{
|
||
|
delete m_connections;
|
||
|
m_children |= Connections;
|
||
|
m_connections = a;
|
||
|
}
|
||
|
|
||
|
DomDesignerData* DomUI::takeElementDesignerdata()
|
||
|
{
|
||
|
DomDesignerData* a = m_designerdata;
|
||
|
m_designerdata = 0;
|
||
|
m_children ^= Designerdata;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomUI::setElementDesignerdata(DomDesignerData* a)
|
||
|
{
|
||
|
delete m_designerdata;
|
||
|
m_children |= Designerdata;
|
||
|
m_designerdata = a;
|
||
|
}
|
||
|
|
||
|
DomSlots* DomUI::takeElementSlots()
|
||
|
{
|
||
|
DomSlots* a = m_slots;
|
||
|
m_slots = 0;
|
||
|
m_children ^= Slots;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomUI::setElementSlots(DomSlots* a)
|
||
|
{
|
||
|
delete m_slots;
|
||
|
m_children |= Slots;
|
||
|
m_slots = a;
|
||
|
}
|
||
|
|
||
|
DomButtonGroups* DomUI::takeElementButtonGroups()
|
||
|
{
|
||
|
DomButtonGroups* a = m_buttonGroups;
|
||
|
m_buttonGroups = 0;
|
||
|
m_children ^= ButtonGroups;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomUI::setElementButtonGroups(DomButtonGroups* a)
|
||
|
{
|
||
|
delete m_buttonGroups;
|
||
|
m_children |= ButtonGroups;
|
||
|
m_buttonGroups = a;
|
||
|
}
|
||
|
|
||
|
void DomUI::clearElementAuthor()
|
||
|
{
|
||
|
m_children &= ~Author;
|
||
|
}
|
||
|
|
||
|
void DomUI::clearElementComment()
|
||
|
{
|
||
|
m_children &= ~Comment;
|
||
|
}
|
||
|
|
||
|
void DomUI::clearElementExportMacro()
|
||
|
{
|
||
|
m_children &= ~ExportMacro;
|
||
|
}
|
||
|
|
||
|
void DomUI::clearElementClass()
|
||
|
{
|
||
|
m_children &= ~Class;
|
||
|
}
|
||
|
|
||
|
void DomUI::clearElementWidget()
|
||
|
{
|
||
|
delete m_widget;
|
||
|
m_widget = 0;
|
||
|
m_children &= ~Widget;
|
||
|
}
|
||
|
|
||
|
void DomUI::clearElementLayoutDefault()
|
||
|
{
|
||
|
delete m_layoutDefault;
|
||
|
m_layoutDefault = 0;
|
||
|
m_children &= ~LayoutDefault;
|
||
|
}
|
||
|
|
||
|
void DomUI::clearElementLayoutFunction()
|
||
|
{
|
||
|
delete m_layoutFunction;
|
||
|
m_layoutFunction = 0;
|
||
|
m_children &= ~LayoutFunction;
|
||
|
}
|
||
|
|
||
|
void DomUI::clearElementPixmapFunction()
|
||
|
{
|
||
|
m_children &= ~PixmapFunction;
|
||
|
}
|
||
|
|
||
|
void DomUI::clearElementCustomWidgets()
|
||
|
{
|
||
|
delete m_customWidgets;
|
||
|
m_customWidgets = 0;
|
||
|
m_children &= ~CustomWidgets;
|
||
|
}
|
||
|
|
||
|
void DomUI::clearElementTabStops()
|
||
|
{
|
||
|
delete m_tabStops;
|
||
|
m_tabStops = 0;
|
||
|
m_children &= ~TabStops;
|
||
|
}
|
||
|
|
||
|
void DomUI::clearElementImages()
|
||
|
{
|
||
|
delete m_images;
|
||
|
m_images = 0;
|
||
|
m_children &= ~Images;
|
||
|
}
|
||
|
|
||
|
void DomUI::clearElementIncludes()
|
||
|
{
|
||
|
delete m_includes;
|
||
|
m_includes = 0;
|
||
|
m_children &= ~Includes;
|
||
|
}
|
||
|
|
||
|
void DomUI::clearElementResources()
|
||
|
{
|
||
|
delete m_resources;
|
||
|
m_resources = 0;
|
||
|
m_children &= ~Resources;
|
||
|
}
|
||
|
|
||
|
void DomUI::clearElementConnections()
|
||
|
{
|
||
|
delete m_connections;
|
||
|
m_connections = 0;
|
||
|
m_children &= ~Connections;
|
||
|
}
|
||
|
|
||
|
void DomUI::clearElementDesignerdata()
|
||
|
{
|
||
|
delete m_designerdata;
|
||
|
m_designerdata = 0;
|
||
|
m_children &= ~Designerdata;
|
||
|
}
|
||
|
|
||
|
void DomUI::clearElementSlots()
|
||
|
{
|
||
|
delete m_slots;
|
||
|
m_slots = 0;
|
||
|
m_children &= ~Slots;
|
||
|
}
|
||
|
|
||
|
void DomUI::clearElementButtonGroups()
|
||
|
{
|
||
|
delete m_buttonGroups;
|
||
|
m_buttonGroups = 0;
|
||
|
m_children &= ~ButtonGroups;
|
||
|
}
|
||
|
|
||
|
void DomIncludes::clear(bool clear_all)
|
||
|
{
|
||
|
qDeleteAll(m_include);
|
||
|
m_include.clear();
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomIncludes::DomIncludes()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomIncludes::~DomIncludes()
|
||
|
{
|
||
|
qDeleteAll(m_include);
|
||
|
m_include.clear();
|
||
|
}
|
||
|
|
||
|
void DomIncludes::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("include")) {
|
||
|
DomInclude *v = new DomInclude();
|
||
|
v->read(reader);
|
||
|
m_include.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomIncludes::read(const QDomElement &node)
|
||
|
{
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("include")) {
|
||
|
DomInclude *v = new DomInclude();
|
||
|
v->read(e);
|
||
|
m_include.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomIncludes::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("includes") : tagName.toLower());
|
||
|
|
||
|
for (int i = 0; i < m_include.size(); ++i) {
|
||
|
DomInclude* v = m_include[i];
|
||
|
v->write(writer, QLatin1String("include"));
|
||
|
}
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomIncludes::setElementInclude(const QList<DomInclude*>& a)
|
||
|
{
|
||
|
m_children |= Include;
|
||
|
m_include = a;
|
||
|
}
|
||
|
|
||
|
void DomInclude::clear(bool clear_all)
|
||
|
{
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text = QLatin1String("");
|
||
|
m_has_attr_location = false;
|
||
|
m_has_attr_impldecl = false;
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomInclude::DomInclude()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_has_attr_location = false;
|
||
|
m_has_attr_impldecl = false;
|
||
|
m_text = QLatin1String("");
|
||
|
}
|
||
|
|
||
|
DomInclude::~DomInclude()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
void DomInclude::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
foreach (const QXmlStreamAttribute &attribute, reader.attributes()) {
|
||
|
QStringRef name = attribute.name();
|
||
|
if (name == QLatin1String("location")) {
|
||
|
setAttributeLocation(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
if (name == QLatin1String("impldecl")) {
|
||
|
setAttributeImpldecl(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected attribute ") + name.toString());
|
||
|
}
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomInclude::read(const QDomElement &node)
|
||
|
{
|
||
|
if (node.hasAttribute(QLatin1String("location")))
|
||
|
setAttributeLocation(node.attribute(QLatin1String("location")));
|
||
|
if (node.hasAttribute(QLatin1String("impldecl")))
|
||
|
setAttributeImpldecl(node.attribute(QLatin1String("impldecl")));
|
||
|
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
}
|
||
|
m_text = QLatin1String("");
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomInclude::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("include") : tagName.toLower());
|
||
|
|
||
|
if (hasAttributeLocation())
|
||
|
writer.writeAttribute(QLatin1String("location"), attributeLocation());
|
||
|
|
||
|
if (hasAttributeImpldecl())
|
||
|
writer.writeAttribute(QLatin1String("impldecl"), attributeImpldecl());
|
||
|
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomResources::clear(bool clear_all)
|
||
|
{
|
||
|
qDeleteAll(m_include);
|
||
|
m_include.clear();
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
m_has_attr_name = false;
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomResources::DomResources()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_has_attr_name = false;
|
||
|
}
|
||
|
|
||
|
DomResources::~DomResources()
|
||
|
{
|
||
|
qDeleteAll(m_include);
|
||
|
m_include.clear();
|
||
|
}
|
||
|
|
||
|
void DomResources::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
foreach (const QXmlStreamAttribute &attribute, reader.attributes()) {
|
||
|
QStringRef name = attribute.name();
|
||
|
if (name == QLatin1String("name")) {
|
||
|
setAttributeName(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected attribute ") + name.toString());
|
||
|
}
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("include")) {
|
||
|
DomResource *v = new DomResource();
|
||
|
v->read(reader);
|
||
|
m_include.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomResources::read(const QDomElement &node)
|
||
|
{
|
||
|
if (node.hasAttribute(QLatin1String("name")))
|
||
|
setAttributeName(node.attribute(QLatin1String("name")));
|
||
|
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("include")) {
|
||
|
DomResource *v = new DomResource();
|
||
|
v->read(e);
|
||
|
m_include.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomResources::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("resources") : tagName.toLower());
|
||
|
|
||
|
if (hasAttributeName())
|
||
|
writer.writeAttribute(QLatin1String("name"), attributeName());
|
||
|
|
||
|
for (int i = 0; i < m_include.size(); ++i) {
|
||
|
DomResource* v = m_include[i];
|
||
|
v->write(writer, QLatin1String("include"));
|
||
|
}
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomResources::setElementInclude(const QList<DomResource*>& a)
|
||
|
{
|
||
|
m_children |= Include;
|
||
|
m_include = a;
|
||
|
}
|
||
|
|
||
|
void DomResource::clear(bool clear_all)
|
||
|
{
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
m_has_attr_location = false;
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomResource::DomResource()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_has_attr_location = false;
|
||
|
}
|
||
|
|
||
|
DomResource::~DomResource()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
void DomResource::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
foreach (const QXmlStreamAttribute &attribute, reader.attributes()) {
|
||
|
QStringRef name = attribute.name();
|
||
|
if (name == QLatin1String("location")) {
|
||
|
setAttributeLocation(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected attribute ") + name.toString());
|
||
|
}
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomResource::read(const QDomElement &node)
|
||
|
{
|
||
|
if (node.hasAttribute(QLatin1String("location")))
|
||
|
setAttributeLocation(node.attribute(QLatin1String("location")));
|
||
|
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomResource::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("resource") : tagName.toLower());
|
||
|
|
||
|
if (hasAttributeLocation())
|
||
|
writer.writeAttribute(QLatin1String("location"), attributeLocation());
|
||
|
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomActionGroup::clear(bool clear_all)
|
||
|
{
|
||
|
qDeleteAll(m_action);
|
||
|
m_action.clear();
|
||
|
qDeleteAll(m_actionGroup);
|
||
|
m_actionGroup.clear();
|
||
|
qDeleteAll(m_property);
|
||
|
m_property.clear();
|
||
|
qDeleteAll(m_attribute);
|
||
|
m_attribute.clear();
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
m_has_attr_name = false;
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomActionGroup::DomActionGroup()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_has_attr_name = false;
|
||
|
}
|
||
|
|
||
|
DomActionGroup::~DomActionGroup()
|
||
|
{
|
||
|
qDeleteAll(m_action);
|
||
|
m_action.clear();
|
||
|
qDeleteAll(m_actionGroup);
|
||
|
m_actionGroup.clear();
|
||
|
qDeleteAll(m_property);
|
||
|
m_property.clear();
|
||
|
qDeleteAll(m_attribute);
|
||
|
m_attribute.clear();
|
||
|
}
|
||
|
|
||
|
void DomActionGroup::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
foreach (const QXmlStreamAttribute &attribute, reader.attributes()) {
|
||
|
QStringRef name = attribute.name();
|
||
|
if (name == QLatin1String("name")) {
|
||
|
setAttributeName(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected attribute ") + name.toString());
|
||
|
}
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("action")) {
|
||
|
DomAction *v = new DomAction();
|
||
|
v->read(reader);
|
||
|
m_action.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("actiongroup")) {
|
||
|
DomActionGroup *v = new DomActionGroup();
|
||
|
v->read(reader);
|
||
|
m_actionGroup.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("property")) {
|
||
|
DomProperty *v = new DomProperty();
|
||
|
v->read(reader);
|
||
|
m_property.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("attribute")) {
|
||
|
DomProperty *v = new DomProperty();
|
||
|
v->read(reader);
|
||
|
m_attribute.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomActionGroup::read(const QDomElement &node)
|
||
|
{
|
||
|
if (node.hasAttribute(QLatin1String("name")))
|
||
|
setAttributeName(node.attribute(QLatin1String("name")));
|
||
|
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("action")) {
|
||
|
DomAction *v = new DomAction();
|
||
|
v->read(e);
|
||
|
m_action.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("actiongroup")) {
|
||
|
DomActionGroup *v = new DomActionGroup();
|
||
|
v->read(e);
|
||
|
m_actionGroup.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("property")) {
|
||
|
DomProperty *v = new DomProperty();
|
||
|
v->read(e);
|
||
|
m_property.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("attribute")) {
|
||
|
DomProperty *v = new DomProperty();
|
||
|
v->read(e);
|
||
|
m_attribute.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomActionGroup::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("actiongroup") : tagName.toLower());
|
||
|
|
||
|
if (hasAttributeName())
|
||
|
writer.writeAttribute(QLatin1String("name"), attributeName());
|
||
|
|
||
|
for (int i = 0; i < m_action.size(); ++i) {
|
||
|
DomAction* v = m_action[i];
|
||
|
v->write(writer, QLatin1String("action"));
|
||
|
}
|
||
|
for (int i = 0; i < m_actionGroup.size(); ++i) {
|
||
|
DomActionGroup* v = m_actionGroup[i];
|
||
|
v->write(writer, QLatin1String("actiongroup"));
|
||
|
}
|
||
|
for (int i = 0; i < m_property.size(); ++i) {
|
||
|
DomProperty* v = m_property[i];
|
||
|
v->write(writer, QLatin1String("property"));
|
||
|
}
|
||
|
for (int i = 0; i < m_attribute.size(); ++i) {
|
||
|
DomProperty* v = m_attribute[i];
|
||
|
v->write(writer, QLatin1String("attribute"));
|
||
|
}
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomActionGroup::setElementAction(const QList<DomAction*>& a)
|
||
|
{
|
||
|
m_children |= Action;
|
||
|
m_action = a;
|
||
|
}
|
||
|
|
||
|
void DomActionGroup::setElementActionGroup(const QList<DomActionGroup*>& a)
|
||
|
{
|
||
|
m_children |= ActionGroup;
|
||
|
m_actionGroup = a;
|
||
|
}
|
||
|
|
||
|
void DomActionGroup::setElementProperty(const QList<DomProperty*>& a)
|
||
|
{
|
||
|
m_children |= Property;
|
||
|
m_property = a;
|
||
|
}
|
||
|
|
||
|
void DomActionGroup::setElementAttribute(const QList<DomProperty*>& a)
|
||
|
{
|
||
|
m_children |= Attribute;
|
||
|
m_attribute = a;
|
||
|
}
|
||
|
|
||
|
void DomAction::clear(bool clear_all)
|
||
|
{
|
||
|
qDeleteAll(m_property);
|
||
|
m_property.clear();
|
||
|
qDeleteAll(m_attribute);
|
||
|
m_attribute.clear();
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
m_has_attr_name = false;
|
||
|
m_has_attr_menu = false;
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomAction::DomAction()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_has_attr_name = false;
|
||
|
m_has_attr_menu = false;
|
||
|
}
|
||
|
|
||
|
DomAction::~DomAction()
|
||
|
{
|
||
|
qDeleteAll(m_property);
|
||
|
m_property.clear();
|
||
|
qDeleteAll(m_attribute);
|
||
|
m_attribute.clear();
|
||
|
}
|
||
|
|
||
|
void DomAction::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
foreach (const QXmlStreamAttribute &attribute, reader.attributes()) {
|
||
|
QStringRef name = attribute.name();
|
||
|
if (name == QLatin1String("name")) {
|
||
|
setAttributeName(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
if (name == QLatin1String("menu")) {
|
||
|
setAttributeMenu(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected attribute ") + name.toString());
|
||
|
}
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("property")) {
|
||
|
DomProperty *v = new DomProperty();
|
||
|
v->read(reader);
|
||
|
m_property.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("attribute")) {
|
||
|
DomProperty *v = new DomProperty();
|
||
|
v->read(reader);
|
||
|
m_attribute.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomAction::read(const QDomElement &node)
|
||
|
{
|
||
|
if (node.hasAttribute(QLatin1String("name")))
|
||
|
setAttributeName(node.attribute(QLatin1String("name")));
|
||
|
if (node.hasAttribute(QLatin1String("menu")))
|
||
|
setAttributeMenu(node.attribute(QLatin1String("menu")));
|
||
|
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("property")) {
|
||
|
DomProperty *v = new DomProperty();
|
||
|
v->read(e);
|
||
|
m_property.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("attribute")) {
|
||
|
DomProperty *v = new DomProperty();
|
||
|
v->read(e);
|
||
|
m_attribute.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomAction::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("action") : tagName.toLower());
|
||
|
|
||
|
if (hasAttributeName())
|
||
|
writer.writeAttribute(QLatin1String("name"), attributeName());
|
||
|
|
||
|
if (hasAttributeMenu())
|
||
|
writer.writeAttribute(QLatin1String("menu"), attributeMenu());
|
||
|
|
||
|
for (int i = 0; i < m_property.size(); ++i) {
|
||
|
DomProperty* v = m_property[i];
|
||
|
v->write(writer, QLatin1String("property"));
|
||
|
}
|
||
|
for (int i = 0; i < m_attribute.size(); ++i) {
|
||
|
DomProperty* v = m_attribute[i];
|
||
|
v->write(writer, QLatin1String("attribute"));
|
||
|
}
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomAction::setElementProperty(const QList<DomProperty*>& a)
|
||
|
{
|
||
|
m_children |= Property;
|
||
|
m_property = a;
|
||
|
}
|
||
|
|
||
|
void DomAction::setElementAttribute(const QList<DomProperty*>& a)
|
||
|
{
|
||
|
m_children |= Attribute;
|
||
|
m_attribute = a;
|
||
|
}
|
||
|
|
||
|
void DomActionRef::clear(bool clear_all)
|
||
|
{
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
m_has_attr_name = false;
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomActionRef::DomActionRef()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_has_attr_name = false;
|
||
|
}
|
||
|
|
||
|
DomActionRef::~DomActionRef()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
void DomActionRef::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
foreach (const QXmlStreamAttribute &attribute, reader.attributes()) {
|
||
|
QStringRef name = attribute.name();
|
||
|
if (name == QLatin1String("name")) {
|
||
|
setAttributeName(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected attribute ") + name.toString());
|
||
|
}
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomActionRef::read(const QDomElement &node)
|
||
|
{
|
||
|
if (node.hasAttribute(QLatin1String("name")))
|
||
|
setAttributeName(node.attribute(QLatin1String("name")));
|
||
|
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomActionRef::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("actionref") : tagName.toLower());
|
||
|
|
||
|
if (hasAttributeName())
|
||
|
writer.writeAttribute(QLatin1String("name"), attributeName());
|
||
|
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomButtonGroup::clear(bool clear_all)
|
||
|
{
|
||
|
qDeleteAll(m_property);
|
||
|
m_property.clear();
|
||
|
qDeleteAll(m_attribute);
|
||
|
m_attribute.clear();
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
m_has_attr_name = false;
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomButtonGroup::DomButtonGroup()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_has_attr_name = false;
|
||
|
}
|
||
|
|
||
|
DomButtonGroup::~DomButtonGroup()
|
||
|
{
|
||
|
qDeleteAll(m_property);
|
||
|
m_property.clear();
|
||
|
qDeleteAll(m_attribute);
|
||
|
m_attribute.clear();
|
||
|
}
|
||
|
|
||
|
void DomButtonGroup::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
foreach (const QXmlStreamAttribute &attribute, reader.attributes()) {
|
||
|
QStringRef name = attribute.name();
|
||
|
if (name == QLatin1String("name")) {
|
||
|
setAttributeName(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected attribute ") + name.toString());
|
||
|
}
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("property")) {
|
||
|
DomProperty *v = new DomProperty();
|
||
|
v->read(reader);
|
||
|
m_property.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("attribute")) {
|
||
|
DomProperty *v = new DomProperty();
|
||
|
v->read(reader);
|
||
|
m_attribute.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomButtonGroup::read(const QDomElement &node)
|
||
|
{
|
||
|
if (node.hasAttribute(QLatin1String("name")))
|
||
|
setAttributeName(node.attribute(QLatin1String("name")));
|
||
|
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("property")) {
|
||
|
DomProperty *v = new DomProperty();
|
||
|
v->read(e);
|
||
|
m_property.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("attribute")) {
|
||
|
DomProperty *v = new DomProperty();
|
||
|
v->read(e);
|
||
|
m_attribute.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomButtonGroup::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("buttongroup") : tagName.toLower());
|
||
|
|
||
|
if (hasAttributeName())
|
||
|
writer.writeAttribute(QLatin1String("name"), attributeName());
|
||
|
|
||
|
for (int i = 0; i < m_property.size(); ++i) {
|
||
|
DomProperty* v = m_property[i];
|
||
|
v->write(writer, QLatin1String("property"));
|
||
|
}
|
||
|
for (int i = 0; i < m_attribute.size(); ++i) {
|
||
|
DomProperty* v = m_attribute[i];
|
||
|
v->write(writer, QLatin1String("attribute"));
|
||
|
}
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomButtonGroup::setElementProperty(const QList<DomProperty*>& a)
|
||
|
{
|
||
|
m_children |= Property;
|
||
|
m_property = a;
|
||
|
}
|
||
|
|
||
|
void DomButtonGroup::setElementAttribute(const QList<DomProperty*>& a)
|
||
|
{
|
||
|
m_children |= Attribute;
|
||
|
m_attribute = a;
|
||
|
}
|
||
|
|
||
|
void DomButtonGroups::clear(bool clear_all)
|
||
|
{
|
||
|
qDeleteAll(m_buttonGroup);
|
||
|
m_buttonGroup.clear();
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomButtonGroups::DomButtonGroups()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomButtonGroups::~DomButtonGroups()
|
||
|
{
|
||
|
qDeleteAll(m_buttonGroup);
|
||
|
m_buttonGroup.clear();
|
||
|
}
|
||
|
|
||
|
void DomButtonGroups::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("buttongroup")) {
|
||
|
DomButtonGroup *v = new DomButtonGroup();
|
||
|
v->read(reader);
|
||
|
m_buttonGroup.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomButtonGroups::read(const QDomElement &node)
|
||
|
{
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("buttongroup")) {
|
||
|
DomButtonGroup *v = new DomButtonGroup();
|
||
|
v->read(e);
|
||
|
m_buttonGroup.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomButtonGroups::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("buttongroups") : tagName.toLower());
|
||
|
|
||
|
for (int i = 0; i < m_buttonGroup.size(); ++i) {
|
||
|
DomButtonGroup* v = m_buttonGroup[i];
|
||
|
v->write(writer, QLatin1String("buttongroup"));
|
||
|
}
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomButtonGroups::setElementButtonGroup(const QList<DomButtonGroup*>& a)
|
||
|
{
|
||
|
m_children |= ButtonGroup;
|
||
|
m_buttonGroup = a;
|
||
|
}
|
||
|
|
||
|
void DomImages::clear(bool clear_all)
|
||
|
{
|
||
|
qDeleteAll(m_image);
|
||
|
m_image.clear();
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomImages::DomImages()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomImages::~DomImages()
|
||
|
{
|
||
|
qDeleteAll(m_image);
|
||
|
m_image.clear();
|
||
|
}
|
||
|
|
||
|
void DomImages::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("image")) {
|
||
|
DomImage *v = new DomImage();
|
||
|
v->read(reader);
|
||
|
m_image.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomImages::read(const QDomElement &node)
|
||
|
{
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("image")) {
|
||
|
DomImage *v = new DomImage();
|
||
|
v->read(e);
|
||
|
m_image.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomImages::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("images") : tagName.toLower());
|
||
|
|
||
|
for (int i = 0; i < m_image.size(); ++i) {
|
||
|
DomImage* v = m_image[i];
|
||
|
v->write(writer, QLatin1String("image"));
|
||
|
}
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomImages::setElementImage(const QList<DomImage*>& a)
|
||
|
{
|
||
|
m_children |= Image;
|
||
|
m_image = a;
|
||
|
}
|
||
|
|
||
|
void DomImage::clear(bool clear_all)
|
||
|
{
|
||
|
delete m_data;
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
m_has_attr_name = false;
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
m_data = 0;
|
||
|
}
|
||
|
|
||
|
DomImage::DomImage()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_has_attr_name = false;
|
||
|
m_data = 0;
|
||
|
}
|
||
|
|
||
|
DomImage::~DomImage()
|
||
|
{
|
||
|
delete m_data;
|
||
|
}
|
||
|
|
||
|
void DomImage::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
foreach (const QXmlStreamAttribute &attribute, reader.attributes()) {
|
||
|
QStringRef name = attribute.name();
|
||
|
if (name == QLatin1String("name")) {
|
||
|
setAttributeName(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected attribute ") + name.toString());
|
||
|
}
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("data")) {
|
||
|
DomImageData *v = new DomImageData();
|
||
|
v->read(reader);
|
||
|
setElementData(v);
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomImage::read(const QDomElement &node)
|
||
|
{
|
||
|
if (node.hasAttribute(QLatin1String("name")))
|
||
|
setAttributeName(node.attribute(QLatin1String("name")));
|
||
|
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("data")) {
|
||
|
DomImageData *v = new DomImageData();
|
||
|
v->read(e);
|
||
|
setElementData(v);
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomImage::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("image") : tagName.toLower());
|
||
|
|
||
|
if (hasAttributeName())
|
||
|
writer.writeAttribute(QLatin1String("name"), attributeName());
|
||
|
|
||
|
if (m_children & Data) {
|
||
|
m_data->write(writer, QLatin1String("data"));
|
||
|
}
|
||
|
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
DomImageData* DomImage::takeElementData()
|
||
|
{
|
||
|
DomImageData* a = m_data;
|
||
|
m_data = 0;
|
||
|
m_children ^= Data;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomImage::setElementData(DomImageData* a)
|
||
|
{
|
||
|
delete m_data;
|
||
|
m_children |= Data;
|
||
|
m_data = a;
|
||
|
}
|
||
|
|
||
|
void DomImage::clearElementData()
|
||
|
{
|
||
|
delete m_data;
|
||
|
m_data = 0;
|
||
|
m_children &= ~Data;
|
||
|
}
|
||
|
|
||
|
void DomImageData::clear(bool clear_all)
|
||
|
{
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text = QLatin1String("");
|
||
|
m_has_attr_format = false;
|
||
|
m_has_attr_length = false;
|
||
|
m_attr_length = 0;
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomImageData::DomImageData()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_has_attr_format = false;
|
||
|
m_has_attr_length = false;
|
||
|
m_attr_length = 0;
|
||
|
m_text = QLatin1String("");
|
||
|
}
|
||
|
|
||
|
DomImageData::~DomImageData()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
void DomImageData::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
foreach (const QXmlStreamAttribute &attribute, reader.attributes()) {
|
||
|
QStringRef name = attribute.name();
|
||
|
if (name == QLatin1String("format")) {
|
||
|
setAttributeFormat(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
if (name == QLatin1String("length")) {
|
||
|
setAttributeLength(attribute.value().toString().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected attribute ") + name.toString());
|
||
|
}
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomImageData::read(const QDomElement &node)
|
||
|
{
|
||
|
if (node.hasAttribute(QLatin1String("format")))
|
||
|
setAttributeFormat(node.attribute(QLatin1String("format")));
|
||
|
if (node.hasAttribute(QLatin1String("length")))
|
||
|
setAttributeLength(node.attribute(QLatin1String("length")).toInt());
|
||
|
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
}
|
||
|
m_text = QLatin1String("");
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomImageData::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("imagedata") : tagName.toLower());
|
||
|
|
||
|
if (hasAttributeFormat())
|
||
|
writer.writeAttribute(QLatin1String("format"), attributeFormat());
|
||
|
|
||
|
if (hasAttributeLength())
|
||
|
writer.writeAttribute(QLatin1String("length"), QString::number(attributeLength()));
|
||
|
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomCustomWidgets::clear(bool clear_all)
|
||
|
{
|
||
|
qDeleteAll(m_customWidget);
|
||
|
m_customWidget.clear();
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomCustomWidgets::DomCustomWidgets()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomCustomWidgets::~DomCustomWidgets()
|
||
|
{
|
||
|
qDeleteAll(m_customWidget);
|
||
|
m_customWidget.clear();
|
||
|
}
|
||
|
|
||
|
void DomCustomWidgets::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("customwidget")) {
|
||
|
DomCustomWidget *v = new DomCustomWidget();
|
||
|
v->read(reader);
|
||
|
m_customWidget.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomCustomWidgets::read(const QDomElement &node)
|
||
|
{
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("customwidget")) {
|
||
|
DomCustomWidget *v = new DomCustomWidget();
|
||
|
v->read(e);
|
||
|
m_customWidget.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomCustomWidgets::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("customwidgets") : tagName.toLower());
|
||
|
|
||
|
for (int i = 0; i < m_customWidget.size(); ++i) {
|
||
|
DomCustomWidget* v = m_customWidget[i];
|
||
|
v->write(writer, QLatin1String("customwidget"));
|
||
|
}
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomCustomWidgets::setElementCustomWidget(const QList<DomCustomWidget*>& a)
|
||
|
{
|
||
|
m_children |= CustomWidget;
|
||
|
m_customWidget = a;
|
||
|
}
|
||
|
|
||
|
void DomHeader::clear(bool clear_all)
|
||
|
{
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text = QLatin1String("");
|
||
|
m_has_attr_location = false;
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomHeader::DomHeader()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_has_attr_location = false;
|
||
|
m_text = QLatin1String("");
|
||
|
}
|
||
|
|
||
|
DomHeader::~DomHeader()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
void DomHeader::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
foreach (const QXmlStreamAttribute &attribute, reader.attributes()) {
|
||
|
QStringRef name = attribute.name();
|
||
|
if (name == QLatin1String("location")) {
|
||
|
setAttributeLocation(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected attribute ") + name.toString());
|
||
|
}
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomHeader::read(const QDomElement &node)
|
||
|
{
|
||
|
if (node.hasAttribute(QLatin1String("location")))
|
||
|
setAttributeLocation(node.attribute(QLatin1String("location")));
|
||
|
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
}
|
||
|
m_text = QLatin1String("");
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomHeader::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("header") : tagName.toLower());
|
||
|
|
||
|
if (hasAttributeLocation())
|
||
|
writer.writeAttribute(QLatin1String("location"), attributeLocation());
|
||
|
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomCustomWidget::clear(bool clear_all)
|
||
|
{
|
||
|
delete m_header;
|
||
|
delete m_sizeHint;
|
||
|
delete m_sizePolicy;
|
||
|
delete m_script;
|
||
|
delete m_properties;
|
||
|
delete m_slots;
|
||
|
delete m_propertyspecifications;
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
m_header = 0;
|
||
|
m_sizeHint = 0;
|
||
|
m_container = 0;
|
||
|
m_sizePolicy = 0;
|
||
|
m_script = 0;
|
||
|
m_properties = 0;
|
||
|
m_slots = 0;
|
||
|
m_propertyspecifications = 0;
|
||
|
}
|
||
|
|
||
|
DomCustomWidget::DomCustomWidget()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_header = 0;
|
||
|
m_sizeHint = 0;
|
||
|
m_container = 0;
|
||
|
m_sizePolicy = 0;
|
||
|
m_script = 0;
|
||
|
m_properties = 0;
|
||
|
m_slots = 0;
|
||
|
m_propertyspecifications = 0;
|
||
|
}
|
||
|
|
||
|
DomCustomWidget::~DomCustomWidget()
|
||
|
{
|
||
|
delete m_header;
|
||
|
delete m_sizeHint;
|
||
|
delete m_sizePolicy;
|
||
|
delete m_script;
|
||
|
delete m_properties;
|
||
|
delete m_slots;
|
||
|
delete m_propertyspecifications;
|
||
|
}
|
||
|
|
||
|
void DomCustomWidget::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("class")) {
|
||
|
setElementClass(reader.readElementText());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("extends")) {
|
||
|
setElementExtends(reader.readElementText());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("header")) {
|
||
|
DomHeader *v = new DomHeader();
|
||
|
v->read(reader);
|
||
|
setElementHeader(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("sizehint")) {
|
||
|
DomSize *v = new DomSize();
|
||
|
v->read(reader);
|
||
|
setElementSizeHint(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("addpagemethod")) {
|
||
|
setElementAddPageMethod(reader.readElementText());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("container")) {
|
||
|
setElementContainer(reader.readElementText().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("sizepolicy")) {
|
||
|
DomSizePolicyData *v = new DomSizePolicyData();
|
||
|
v->read(reader);
|
||
|
setElementSizePolicy(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("pixmap")) {
|
||
|
setElementPixmap(reader.readElementText());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("script")) {
|
||
|
DomScript *v = new DomScript();
|
||
|
v->read(reader);
|
||
|
setElementScript(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("properties")) {
|
||
|
DomProperties *v = new DomProperties();
|
||
|
v->read(reader);
|
||
|
setElementProperties(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("slots")) {
|
||
|
DomSlots *v = new DomSlots();
|
||
|
v->read(reader);
|
||
|
setElementSlots(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("propertyspecifications")) {
|
||
|
DomPropertySpecifications *v = new DomPropertySpecifications();
|
||
|
v->read(reader);
|
||
|
setElementPropertyspecifications(v);
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomCustomWidget::read(const QDomElement &node)
|
||
|
{
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("class")) {
|
||
|
setElementClass(e.text());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("extends")) {
|
||
|
setElementExtends(e.text());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("header")) {
|
||
|
DomHeader *v = new DomHeader();
|
||
|
v->read(e);
|
||
|
setElementHeader(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("sizehint")) {
|
||
|
DomSize *v = new DomSize();
|
||
|
v->read(e);
|
||
|
setElementSizeHint(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("addpagemethod")) {
|
||
|
setElementAddPageMethod(e.text());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("container")) {
|
||
|
setElementContainer(e.text().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("sizepolicy")) {
|
||
|
DomSizePolicyData *v = new DomSizePolicyData();
|
||
|
v->read(e);
|
||
|
setElementSizePolicy(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("pixmap")) {
|
||
|
setElementPixmap(e.text());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("script")) {
|
||
|
DomScript *v = new DomScript();
|
||
|
v->read(e);
|
||
|
setElementScript(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("properties")) {
|
||
|
DomProperties *v = new DomProperties();
|
||
|
v->read(e);
|
||
|
setElementProperties(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("slots")) {
|
||
|
DomSlots *v = new DomSlots();
|
||
|
v->read(e);
|
||
|
setElementSlots(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("propertyspecifications")) {
|
||
|
DomPropertySpecifications *v = new DomPropertySpecifications();
|
||
|
v->read(e);
|
||
|
setElementPropertyspecifications(v);
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomCustomWidget::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("customwidget") : tagName.toLower());
|
||
|
|
||
|
if (m_children & Class) {
|
||
|
writer.writeTextElement(QLatin1String("class"), m_class);
|
||
|
}
|
||
|
|
||
|
if (m_children & Extends) {
|
||
|
writer.writeTextElement(QLatin1String("extends"), m_extends);
|
||
|
}
|
||
|
|
||
|
if (m_children & Header) {
|
||
|
m_header->write(writer, QLatin1String("header"));
|
||
|
}
|
||
|
|
||
|
if (m_children & SizeHint) {
|
||
|
m_sizeHint->write(writer, QLatin1String("sizehint"));
|
||
|
}
|
||
|
|
||
|
if (m_children & AddPageMethod) {
|
||
|
writer.writeTextElement(QLatin1String("addpagemethod"), m_addPageMethod);
|
||
|
}
|
||
|
|
||
|
if (m_children & Container) {
|
||
|
writer.writeTextElement(QLatin1String("container"), QString::number(m_container));
|
||
|
}
|
||
|
|
||
|
if (m_children & SizePolicy) {
|
||
|
m_sizePolicy->write(writer, QLatin1String("sizepolicy"));
|
||
|
}
|
||
|
|
||
|
if (m_children & Pixmap) {
|
||
|
writer.writeTextElement(QLatin1String("pixmap"), m_pixmap);
|
||
|
}
|
||
|
|
||
|
if (m_children & Script) {
|
||
|
m_script->write(writer, QLatin1String("script"));
|
||
|
}
|
||
|
|
||
|
if (m_children & Properties) {
|
||
|
m_properties->write(writer, QLatin1String("properties"));
|
||
|
}
|
||
|
|
||
|
if (m_children & Slots) {
|
||
|
m_slots->write(writer, QLatin1String("slots"));
|
||
|
}
|
||
|
|
||
|
if (m_children & Propertyspecifications) {
|
||
|
m_propertyspecifications->write(writer, QLatin1String("propertyspecifications"));
|
||
|
}
|
||
|
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomCustomWidget::setElementClass(const QString& a)
|
||
|
{
|
||
|
m_children |= Class;
|
||
|
m_class = a;
|
||
|
}
|
||
|
|
||
|
void DomCustomWidget::setElementExtends(const QString& a)
|
||
|
{
|
||
|
m_children |= Extends;
|
||
|
m_extends = a;
|
||
|
}
|
||
|
|
||
|
DomHeader* DomCustomWidget::takeElementHeader()
|
||
|
{
|
||
|
DomHeader* a = m_header;
|
||
|
m_header = 0;
|
||
|
m_children ^= Header;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomCustomWidget::setElementHeader(DomHeader* a)
|
||
|
{
|
||
|
delete m_header;
|
||
|
m_children |= Header;
|
||
|
m_header = a;
|
||
|
}
|
||
|
|
||
|
DomSize* DomCustomWidget::takeElementSizeHint()
|
||
|
{
|
||
|
DomSize* a = m_sizeHint;
|
||
|
m_sizeHint = 0;
|
||
|
m_children ^= SizeHint;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomCustomWidget::setElementSizeHint(DomSize* a)
|
||
|
{
|
||
|
delete m_sizeHint;
|
||
|
m_children |= SizeHint;
|
||
|
m_sizeHint = a;
|
||
|
}
|
||
|
|
||
|
void DomCustomWidget::setElementAddPageMethod(const QString& a)
|
||
|
{
|
||
|
m_children |= AddPageMethod;
|
||
|
m_addPageMethod = a;
|
||
|
}
|
||
|
|
||
|
void DomCustomWidget::setElementContainer(int a)
|
||
|
{
|
||
|
m_children |= Container;
|
||
|
m_container = a;
|
||
|
}
|
||
|
|
||
|
DomSizePolicyData* DomCustomWidget::takeElementSizePolicy()
|
||
|
{
|
||
|
DomSizePolicyData* a = m_sizePolicy;
|
||
|
m_sizePolicy = 0;
|
||
|
m_children ^= SizePolicy;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomCustomWidget::setElementSizePolicy(DomSizePolicyData* a)
|
||
|
{
|
||
|
delete m_sizePolicy;
|
||
|
m_children |= SizePolicy;
|
||
|
m_sizePolicy = a;
|
||
|
}
|
||
|
|
||
|
void DomCustomWidget::setElementPixmap(const QString& a)
|
||
|
{
|
||
|
m_children |= Pixmap;
|
||
|
m_pixmap = a;
|
||
|
}
|
||
|
|
||
|
DomScript* DomCustomWidget::takeElementScript()
|
||
|
{
|
||
|
DomScript* a = m_script;
|
||
|
m_script = 0;
|
||
|
m_children ^= Script;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomCustomWidget::setElementScript(DomScript* a)
|
||
|
{
|
||
|
delete m_script;
|
||
|
m_children |= Script;
|
||
|
m_script = a;
|
||
|
}
|
||
|
|
||
|
DomProperties* DomCustomWidget::takeElementProperties()
|
||
|
{
|
||
|
DomProperties* a = m_properties;
|
||
|
m_properties = 0;
|
||
|
m_children ^= Properties;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomCustomWidget::setElementProperties(DomProperties* a)
|
||
|
{
|
||
|
delete m_properties;
|
||
|
m_children |= Properties;
|
||
|
m_properties = a;
|
||
|
}
|
||
|
|
||
|
DomSlots* DomCustomWidget::takeElementSlots()
|
||
|
{
|
||
|
DomSlots* a = m_slots;
|
||
|
m_slots = 0;
|
||
|
m_children ^= Slots;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomCustomWidget::setElementSlots(DomSlots* a)
|
||
|
{
|
||
|
delete m_slots;
|
||
|
m_children |= Slots;
|
||
|
m_slots = a;
|
||
|
}
|
||
|
|
||
|
DomPropertySpecifications* DomCustomWidget::takeElementPropertyspecifications()
|
||
|
{
|
||
|
DomPropertySpecifications* a = m_propertyspecifications;
|
||
|
m_propertyspecifications = 0;
|
||
|
m_children ^= Propertyspecifications;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomCustomWidget::setElementPropertyspecifications(DomPropertySpecifications* a)
|
||
|
{
|
||
|
delete m_propertyspecifications;
|
||
|
m_children |= Propertyspecifications;
|
||
|
m_propertyspecifications = a;
|
||
|
}
|
||
|
|
||
|
void DomCustomWidget::clearElementClass()
|
||
|
{
|
||
|
m_children &= ~Class;
|
||
|
}
|
||
|
|
||
|
void DomCustomWidget::clearElementExtends()
|
||
|
{
|
||
|
m_children &= ~Extends;
|
||
|
}
|
||
|
|
||
|
void DomCustomWidget::clearElementHeader()
|
||
|
{
|
||
|
delete m_header;
|
||
|
m_header = 0;
|
||
|
m_children &= ~Header;
|
||
|
}
|
||
|
|
||
|
void DomCustomWidget::clearElementSizeHint()
|
||
|
{
|
||
|
delete m_sizeHint;
|
||
|
m_sizeHint = 0;
|
||
|
m_children &= ~SizeHint;
|
||
|
}
|
||
|
|
||
|
void DomCustomWidget::clearElementAddPageMethod()
|
||
|
{
|
||
|
m_children &= ~AddPageMethod;
|
||
|
}
|
||
|
|
||
|
void DomCustomWidget::clearElementContainer()
|
||
|
{
|
||
|
m_children &= ~Container;
|
||
|
}
|
||
|
|
||
|
void DomCustomWidget::clearElementSizePolicy()
|
||
|
{
|
||
|
delete m_sizePolicy;
|
||
|
m_sizePolicy = 0;
|
||
|
m_children &= ~SizePolicy;
|
||
|
}
|
||
|
|
||
|
void DomCustomWidget::clearElementPixmap()
|
||
|
{
|
||
|
m_children &= ~Pixmap;
|
||
|
}
|
||
|
|
||
|
void DomCustomWidget::clearElementScript()
|
||
|
{
|
||
|
delete m_script;
|
||
|
m_script = 0;
|
||
|
m_children &= ~Script;
|
||
|
}
|
||
|
|
||
|
void DomCustomWidget::clearElementProperties()
|
||
|
{
|
||
|
delete m_properties;
|
||
|
m_properties = 0;
|
||
|
m_children &= ~Properties;
|
||
|
}
|
||
|
|
||
|
void DomCustomWidget::clearElementSlots()
|
||
|
{
|
||
|
delete m_slots;
|
||
|
m_slots = 0;
|
||
|
m_children &= ~Slots;
|
||
|
}
|
||
|
|
||
|
void DomCustomWidget::clearElementPropertyspecifications()
|
||
|
{
|
||
|
delete m_propertyspecifications;
|
||
|
m_propertyspecifications = 0;
|
||
|
m_children &= ~Propertyspecifications;
|
||
|
}
|
||
|
|
||
|
void DomProperties::clear(bool clear_all)
|
||
|
{
|
||
|
qDeleteAll(m_property);
|
||
|
m_property.clear();
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomProperties::DomProperties()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomProperties::~DomProperties()
|
||
|
{
|
||
|
qDeleteAll(m_property);
|
||
|
m_property.clear();
|
||
|
}
|
||
|
|
||
|
void DomProperties::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("property")) {
|
||
|
DomPropertyData *v = new DomPropertyData();
|
||
|
v->read(reader);
|
||
|
m_property.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomProperties::read(const QDomElement &node)
|
||
|
{
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("property")) {
|
||
|
DomPropertyData *v = new DomPropertyData();
|
||
|
v->read(e);
|
||
|
m_property.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomProperties::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("properties") : tagName.toLower());
|
||
|
|
||
|
for (int i = 0; i < m_property.size(); ++i) {
|
||
|
DomPropertyData* v = m_property[i];
|
||
|
v->write(writer, QLatin1String("property"));
|
||
|
}
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomProperties::setElementProperty(const QList<DomPropertyData*>& a)
|
||
|
{
|
||
|
m_children |= Property;
|
||
|
m_property = a;
|
||
|
}
|
||
|
|
||
|
void DomPropertyData::clear(bool clear_all)
|
||
|
{
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
m_has_attr_type = false;
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomPropertyData::DomPropertyData()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_has_attr_type = false;
|
||
|
}
|
||
|
|
||
|
DomPropertyData::~DomPropertyData()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
void DomPropertyData::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
foreach (const QXmlStreamAttribute &attribute, reader.attributes()) {
|
||
|
QStringRef name = attribute.name();
|
||
|
if (name == QLatin1String("type")) {
|
||
|
setAttributeType(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected attribute ") + name.toString());
|
||
|
}
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomPropertyData::read(const QDomElement &node)
|
||
|
{
|
||
|
if (node.hasAttribute(QLatin1String("type")))
|
||
|
setAttributeType(node.attribute(QLatin1String("type")));
|
||
|
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomPropertyData::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("propertydata") : tagName.toLower());
|
||
|
|
||
|
if (hasAttributeType())
|
||
|
writer.writeAttribute(QLatin1String("type"), attributeType());
|
||
|
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomSizePolicyData::clear(bool clear_all)
|
||
|
{
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
m_horData = 0;
|
||
|
m_verData = 0;
|
||
|
}
|
||
|
|
||
|
DomSizePolicyData::DomSizePolicyData()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_horData = 0;
|
||
|
m_verData = 0;
|
||
|
}
|
||
|
|
||
|
DomSizePolicyData::~DomSizePolicyData()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
void DomSizePolicyData::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("hordata")) {
|
||
|
setElementHorData(reader.readElementText().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("verdata")) {
|
||
|
setElementVerData(reader.readElementText().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomSizePolicyData::read(const QDomElement &node)
|
||
|
{
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("hordata")) {
|
||
|
setElementHorData(e.text().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("verdata")) {
|
||
|
setElementVerData(e.text().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomSizePolicyData::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("sizepolicydata") : tagName.toLower());
|
||
|
|
||
|
if (m_children & HorData) {
|
||
|
writer.writeTextElement(QLatin1String("hordata"), QString::number(m_horData));
|
||
|
}
|
||
|
|
||
|
if (m_children & VerData) {
|
||
|
writer.writeTextElement(QLatin1String("verdata"), QString::number(m_verData));
|
||
|
}
|
||
|
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomSizePolicyData::setElementHorData(int a)
|
||
|
{
|
||
|
m_children |= HorData;
|
||
|
m_horData = a;
|
||
|
}
|
||
|
|
||
|
void DomSizePolicyData::setElementVerData(int a)
|
||
|
{
|
||
|
m_children |= VerData;
|
||
|
m_verData = a;
|
||
|
}
|
||
|
|
||
|
void DomSizePolicyData::clearElementHorData()
|
||
|
{
|
||
|
m_children &= ~HorData;
|
||
|
}
|
||
|
|
||
|
void DomSizePolicyData::clearElementVerData()
|
||
|
{
|
||
|
m_children &= ~VerData;
|
||
|
}
|
||
|
|
||
|
void DomLayoutDefault::clear(bool clear_all)
|
||
|
{
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
m_has_attr_spacing = false;
|
||
|
m_attr_spacing = 0;
|
||
|
m_has_attr_margin = false;
|
||
|
m_attr_margin = 0;
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomLayoutDefault::DomLayoutDefault()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_has_attr_spacing = false;
|
||
|
m_attr_spacing = 0;
|
||
|
m_has_attr_margin = false;
|
||
|
m_attr_margin = 0;
|
||
|
}
|
||
|
|
||
|
DomLayoutDefault::~DomLayoutDefault()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
void DomLayoutDefault::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
foreach (const QXmlStreamAttribute &attribute, reader.attributes()) {
|
||
|
QStringRef name = attribute.name();
|
||
|
if (name == QLatin1String("spacing")) {
|
||
|
setAttributeSpacing(attribute.value().toString().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (name == QLatin1String("margin")) {
|
||
|
setAttributeMargin(attribute.value().toString().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected attribute ") + name.toString());
|
||
|
}
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomLayoutDefault::read(const QDomElement &node)
|
||
|
{
|
||
|
if (node.hasAttribute(QLatin1String("spacing")))
|
||
|
setAttributeSpacing(node.attribute(QLatin1String("spacing")).toInt());
|
||
|
if (node.hasAttribute(QLatin1String("margin")))
|
||
|
setAttributeMargin(node.attribute(QLatin1String("margin")).toInt());
|
||
|
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomLayoutDefault::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("layoutdefault") : tagName.toLower());
|
||
|
|
||
|
if (hasAttributeSpacing())
|
||
|
writer.writeAttribute(QLatin1String("spacing"), QString::number(attributeSpacing()));
|
||
|
|
||
|
if (hasAttributeMargin())
|
||
|
writer.writeAttribute(QLatin1String("margin"), QString::number(attributeMargin()));
|
||
|
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomLayoutFunction::clear(bool clear_all)
|
||
|
{
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
m_has_attr_spacing = false;
|
||
|
m_has_attr_margin = false;
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomLayoutFunction::DomLayoutFunction()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_has_attr_spacing = false;
|
||
|
m_has_attr_margin = false;
|
||
|
}
|
||
|
|
||
|
DomLayoutFunction::~DomLayoutFunction()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
void DomLayoutFunction::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
foreach (const QXmlStreamAttribute &attribute, reader.attributes()) {
|
||
|
QStringRef name = attribute.name();
|
||
|
if (name == QLatin1String("spacing")) {
|
||
|
setAttributeSpacing(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
if (name == QLatin1String("margin")) {
|
||
|
setAttributeMargin(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected attribute ") + name.toString());
|
||
|
}
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomLayoutFunction::read(const QDomElement &node)
|
||
|
{
|
||
|
if (node.hasAttribute(QLatin1String("spacing")))
|
||
|
setAttributeSpacing(node.attribute(QLatin1String("spacing")));
|
||
|
if (node.hasAttribute(QLatin1String("margin")))
|
||
|
setAttributeMargin(node.attribute(QLatin1String("margin")));
|
||
|
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomLayoutFunction::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("layoutfunction") : tagName.toLower());
|
||
|
|
||
|
if (hasAttributeSpacing())
|
||
|
writer.writeAttribute(QLatin1String("spacing"), attributeSpacing());
|
||
|
|
||
|
if (hasAttributeMargin())
|
||
|
writer.writeAttribute(QLatin1String("margin"), attributeMargin());
|
||
|
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomTabStops::clear(bool clear_all)
|
||
|
{
|
||
|
m_tabStop.clear();
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomTabStops::DomTabStops()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomTabStops::~DomTabStops()
|
||
|
{
|
||
|
m_tabStop.clear();
|
||
|
}
|
||
|
|
||
|
void DomTabStops::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("tabstop")) {
|
||
|
m_tabStop.append(reader.readElementText());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomTabStops::read(const QDomElement &node)
|
||
|
{
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("tabstop")) {
|
||
|
m_tabStop.append(e.text());
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomTabStops::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("tabstops") : tagName.toLower());
|
||
|
|
||
|
for (int i = 0; i < m_tabStop.size(); ++i) {
|
||
|
QString v = m_tabStop[i];
|
||
|
writer.writeTextElement(QLatin1String("tabstop"), v);
|
||
|
}
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomTabStops::setElementTabStop(const QStringList& a)
|
||
|
{
|
||
|
m_children |= TabStop;
|
||
|
m_tabStop = a;
|
||
|
}
|
||
|
|
||
|
void DomLayout::clear(bool clear_all)
|
||
|
{
|
||
|
qDeleteAll(m_property);
|
||
|
m_property.clear();
|
||
|
qDeleteAll(m_attribute);
|
||
|
m_attribute.clear();
|
||
|
qDeleteAll(m_item);
|
||
|
m_item.clear();
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
m_has_attr_class = false;
|
||
|
m_has_attr_name = false;
|
||
|
m_has_attr_stretch = false;
|
||
|
m_has_attr_rowStretch = false;
|
||
|
m_has_attr_columnStretch = false;
|
||
|
m_has_attr_rowMinimumHeight = false;
|
||
|
m_has_attr_columnMinimumWidth = false;
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomLayout::DomLayout()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_has_attr_class = false;
|
||
|
m_has_attr_name = false;
|
||
|
m_has_attr_stretch = false;
|
||
|
m_has_attr_rowStretch = false;
|
||
|
m_has_attr_columnStretch = false;
|
||
|
m_has_attr_rowMinimumHeight = false;
|
||
|
m_has_attr_columnMinimumWidth = false;
|
||
|
}
|
||
|
|
||
|
DomLayout::~DomLayout()
|
||
|
{
|
||
|
qDeleteAll(m_property);
|
||
|
m_property.clear();
|
||
|
qDeleteAll(m_attribute);
|
||
|
m_attribute.clear();
|
||
|
qDeleteAll(m_item);
|
||
|
m_item.clear();
|
||
|
}
|
||
|
|
||
|
void DomLayout::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
foreach (const QXmlStreamAttribute &attribute, reader.attributes()) {
|
||
|
QStringRef name = attribute.name();
|
||
|
if (name == QLatin1String("class")) {
|
||
|
setAttributeClass(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
if (name == QLatin1String("name")) {
|
||
|
setAttributeName(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
if (name == QLatin1String("stretch")) {
|
||
|
setAttributeStretch(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
if (name == QLatin1String("rowstretch")) {
|
||
|
setAttributeRowStretch(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
if (name == QLatin1String("columnstretch")) {
|
||
|
setAttributeColumnStretch(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
if (name == QLatin1String("rowminimumheight")) {
|
||
|
setAttributeRowMinimumHeight(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
if (name == QLatin1String("columnminimumwidth")) {
|
||
|
setAttributeColumnMinimumWidth(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected attribute ") + name.toString());
|
||
|
}
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("property")) {
|
||
|
DomProperty *v = new DomProperty();
|
||
|
v->read(reader);
|
||
|
m_property.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("attribute")) {
|
||
|
DomProperty *v = new DomProperty();
|
||
|
v->read(reader);
|
||
|
m_attribute.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("item")) {
|
||
|
DomLayoutItem *v = new DomLayoutItem();
|
||
|
v->read(reader);
|
||
|
m_item.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomLayout::read(const QDomElement &node)
|
||
|
{
|
||
|
if (node.hasAttribute(QLatin1String("class")))
|
||
|
setAttributeClass(node.attribute(QLatin1String("class")));
|
||
|
if (node.hasAttribute(QLatin1String("name")))
|
||
|
setAttributeName(node.attribute(QLatin1String("name")));
|
||
|
if (node.hasAttribute(QLatin1String("stretch")))
|
||
|
setAttributeStretch(node.attribute(QLatin1String("stretch")));
|
||
|
if (node.hasAttribute(QLatin1String("rowstretch")))
|
||
|
setAttributeRowStretch(node.attribute(QLatin1String("rowstretch")));
|
||
|
if (node.hasAttribute(QLatin1String("columnstretch")))
|
||
|
setAttributeColumnStretch(node.attribute(QLatin1String("columnstretch")));
|
||
|
if (node.hasAttribute(QLatin1String("rowminimumheight")))
|
||
|
setAttributeRowMinimumHeight(node.attribute(QLatin1String("rowminimumheight")));
|
||
|
if (node.hasAttribute(QLatin1String("columnminimumwidth")))
|
||
|
setAttributeColumnMinimumWidth(node.attribute(QLatin1String("columnminimumwidth")));
|
||
|
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("property")) {
|
||
|
DomProperty *v = new DomProperty();
|
||
|
v->read(e);
|
||
|
m_property.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("attribute")) {
|
||
|
DomProperty *v = new DomProperty();
|
||
|
v->read(e);
|
||
|
m_attribute.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("item")) {
|
||
|
DomLayoutItem *v = new DomLayoutItem();
|
||
|
v->read(e);
|
||
|
m_item.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomLayout::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("layout") : tagName.toLower());
|
||
|
|
||
|
if (hasAttributeClass())
|
||
|
writer.writeAttribute(QLatin1String("class"), attributeClass());
|
||
|
|
||
|
if (hasAttributeName())
|
||
|
writer.writeAttribute(QLatin1String("name"), attributeName());
|
||
|
|
||
|
if (hasAttributeStretch())
|
||
|
writer.writeAttribute(QLatin1String("stretch"), attributeStretch());
|
||
|
|
||
|
if (hasAttributeRowStretch())
|
||
|
writer.writeAttribute(QLatin1String("rowstretch"), attributeRowStretch());
|
||
|
|
||
|
if (hasAttributeColumnStretch())
|
||
|
writer.writeAttribute(QLatin1String("columnstretch"), attributeColumnStretch());
|
||
|
|
||
|
if (hasAttributeRowMinimumHeight())
|
||
|
writer.writeAttribute(QLatin1String("rowminimumheight"), attributeRowMinimumHeight());
|
||
|
|
||
|
if (hasAttributeColumnMinimumWidth())
|
||
|
writer.writeAttribute(QLatin1String("columnminimumwidth"), attributeColumnMinimumWidth());
|
||
|
|
||
|
for (int i = 0; i < m_property.size(); ++i) {
|
||
|
DomProperty* v = m_property[i];
|
||
|
v->write(writer, QLatin1String("property"));
|
||
|
}
|
||
|
for (int i = 0; i < m_attribute.size(); ++i) {
|
||
|
DomProperty* v = m_attribute[i];
|
||
|
v->write(writer, QLatin1String("attribute"));
|
||
|
}
|
||
|
for (int i = 0; i < m_item.size(); ++i) {
|
||
|
DomLayoutItem* v = m_item[i];
|
||
|
v->write(writer, QLatin1String("item"));
|
||
|
}
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomLayout::setElementProperty(const QList<DomProperty*>& a)
|
||
|
{
|
||
|
m_children |= Property;
|
||
|
m_property = a;
|
||
|
}
|
||
|
|
||
|
void DomLayout::setElementAttribute(const QList<DomProperty*>& a)
|
||
|
{
|
||
|
m_children |= Attribute;
|
||
|
m_attribute = a;
|
||
|
}
|
||
|
|
||
|
void DomLayout::setElementItem(const QList<DomLayoutItem*>& a)
|
||
|
{
|
||
|
m_children |= Item;
|
||
|
m_item = a;
|
||
|
}
|
||
|
|
||
|
void DomLayoutItem::clear(bool clear_all)
|
||
|
{
|
||
|
delete m_widget;
|
||
|
delete m_layout;
|
||
|
delete m_spacer;
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
m_has_attr_row = false;
|
||
|
m_attr_row = 0;
|
||
|
m_has_attr_column = false;
|
||
|
m_attr_column = 0;
|
||
|
m_has_attr_rowSpan = false;
|
||
|
m_attr_rowSpan = 0;
|
||
|
m_has_attr_colSpan = false;
|
||
|
m_attr_colSpan = 0;
|
||
|
}
|
||
|
|
||
|
m_kind = Unknown;
|
||
|
|
||
|
m_widget = 0;
|
||
|
m_layout = 0;
|
||
|
m_spacer = 0;
|
||
|
}
|
||
|
|
||
|
DomLayoutItem::DomLayoutItem()
|
||
|
{
|
||
|
m_kind = Unknown;
|
||
|
|
||
|
m_has_attr_row = false;
|
||
|
m_attr_row = 0;
|
||
|
m_has_attr_column = false;
|
||
|
m_attr_column = 0;
|
||
|
m_has_attr_rowSpan = false;
|
||
|
m_attr_rowSpan = 0;
|
||
|
m_has_attr_colSpan = false;
|
||
|
m_attr_colSpan = 0;
|
||
|
m_widget = 0;
|
||
|
m_layout = 0;
|
||
|
m_spacer = 0;
|
||
|
}
|
||
|
|
||
|
DomLayoutItem::~DomLayoutItem()
|
||
|
{
|
||
|
delete m_widget;
|
||
|
delete m_layout;
|
||
|
delete m_spacer;
|
||
|
}
|
||
|
|
||
|
void DomLayoutItem::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
foreach (const QXmlStreamAttribute &attribute, reader.attributes()) {
|
||
|
QStringRef name = attribute.name();
|
||
|
if (name == QLatin1String("row")) {
|
||
|
setAttributeRow(attribute.value().toString().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (name == QLatin1String("column")) {
|
||
|
setAttributeColumn(attribute.value().toString().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (name == QLatin1String("rowspan")) {
|
||
|
setAttributeRowSpan(attribute.value().toString().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (name == QLatin1String("colspan")) {
|
||
|
setAttributeColSpan(attribute.value().toString().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected attribute ") + name.toString());
|
||
|
}
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("widget")) {
|
||
|
DomWidget *v = new DomWidget();
|
||
|
v->read(reader);
|
||
|
setElementWidget(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("layout")) {
|
||
|
DomLayout *v = new DomLayout();
|
||
|
v->read(reader);
|
||
|
setElementLayout(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("spacer")) {
|
||
|
DomSpacer *v = new DomSpacer();
|
||
|
v->read(reader);
|
||
|
setElementSpacer(v);
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomLayoutItem::read(const QDomElement &node)
|
||
|
{
|
||
|
if (node.hasAttribute(QLatin1String("row")))
|
||
|
setAttributeRow(node.attribute(QLatin1String("row")).toInt());
|
||
|
if (node.hasAttribute(QLatin1String("column")))
|
||
|
setAttributeColumn(node.attribute(QLatin1String("column")).toInt());
|
||
|
if (node.hasAttribute(QLatin1String("rowspan")))
|
||
|
setAttributeRowSpan(node.attribute(QLatin1String("rowspan")).toInt());
|
||
|
if (node.hasAttribute(QLatin1String("colspan")))
|
||
|
setAttributeColSpan(node.attribute(QLatin1String("colspan")).toInt());
|
||
|
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("widget")) {
|
||
|
DomWidget *v = new DomWidget();
|
||
|
v->read(e);
|
||
|
setElementWidget(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("layout")) {
|
||
|
DomLayout *v = new DomLayout();
|
||
|
v->read(e);
|
||
|
setElementLayout(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("spacer")) {
|
||
|
DomSpacer *v = new DomSpacer();
|
||
|
v->read(e);
|
||
|
setElementSpacer(v);
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomLayoutItem::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("layoutitem") : tagName.toLower());
|
||
|
|
||
|
if (hasAttributeRow())
|
||
|
writer.writeAttribute(QLatin1String("row"), QString::number(attributeRow()));
|
||
|
|
||
|
if (hasAttributeColumn())
|
||
|
writer.writeAttribute(QLatin1String("column"), QString::number(attributeColumn()));
|
||
|
|
||
|
if (hasAttributeRowSpan())
|
||
|
writer.writeAttribute(QLatin1String("rowspan"), QString::number(attributeRowSpan()));
|
||
|
|
||
|
if (hasAttributeColSpan())
|
||
|
writer.writeAttribute(QLatin1String("colspan"), QString::number(attributeColSpan()));
|
||
|
|
||
|
switch (kind()) {
|
||
|
case Widget: {
|
||
|
DomWidget* v = elementWidget();
|
||
|
if (v != 0) {
|
||
|
v->write(writer, QLatin1String("widget"));
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
case Layout: {
|
||
|
DomLayout* v = elementLayout();
|
||
|
if (v != 0) {
|
||
|
v->write(writer, QLatin1String("layout"));
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
case Spacer: {
|
||
|
DomSpacer* v = elementSpacer();
|
||
|
if (v != 0) {
|
||
|
v->write(writer, QLatin1String("spacer"));
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
default:
|
||
|
break;
|
||
|
}
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
DomWidget* DomLayoutItem::takeElementWidget()
|
||
|
{
|
||
|
DomWidget* a = m_widget;
|
||
|
m_widget = 0;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomLayoutItem::setElementWidget(DomWidget* a)
|
||
|
{
|
||
|
clear(false);
|
||
|
m_kind = Widget;
|
||
|
m_widget = a;
|
||
|
}
|
||
|
|
||
|
DomLayout* DomLayoutItem::takeElementLayout()
|
||
|
{
|
||
|
DomLayout* a = m_layout;
|
||
|
m_layout = 0;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomLayoutItem::setElementLayout(DomLayout* a)
|
||
|
{
|
||
|
clear(false);
|
||
|
m_kind = Layout;
|
||
|
m_layout = a;
|
||
|
}
|
||
|
|
||
|
DomSpacer* DomLayoutItem::takeElementSpacer()
|
||
|
{
|
||
|
DomSpacer* a = m_spacer;
|
||
|
m_spacer = 0;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomLayoutItem::setElementSpacer(DomSpacer* a)
|
||
|
{
|
||
|
clear(false);
|
||
|
m_kind = Spacer;
|
||
|
m_spacer = a;
|
||
|
}
|
||
|
|
||
|
void DomRow::clear(bool clear_all)
|
||
|
{
|
||
|
qDeleteAll(m_property);
|
||
|
m_property.clear();
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomRow::DomRow()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomRow::~DomRow()
|
||
|
{
|
||
|
qDeleteAll(m_property);
|
||
|
m_property.clear();
|
||
|
}
|
||
|
|
||
|
void DomRow::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("property")) {
|
||
|
DomProperty *v = new DomProperty();
|
||
|
v->read(reader);
|
||
|
m_property.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomRow::read(const QDomElement &node)
|
||
|
{
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("property")) {
|
||
|
DomProperty *v = new DomProperty();
|
||
|
v->read(e);
|
||
|
m_property.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomRow::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("row") : tagName.toLower());
|
||
|
|
||
|
for (int i = 0; i < m_property.size(); ++i) {
|
||
|
DomProperty* v = m_property[i];
|
||
|
v->write(writer, QLatin1String("property"));
|
||
|
}
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomRow::setElementProperty(const QList<DomProperty*>& a)
|
||
|
{
|
||
|
m_children |= Property;
|
||
|
m_property = a;
|
||
|
}
|
||
|
|
||
|
void DomColumn::clear(bool clear_all)
|
||
|
{
|
||
|
qDeleteAll(m_property);
|
||
|
m_property.clear();
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomColumn::DomColumn()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomColumn::~DomColumn()
|
||
|
{
|
||
|
qDeleteAll(m_property);
|
||
|
m_property.clear();
|
||
|
}
|
||
|
|
||
|
void DomColumn::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("property")) {
|
||
|
DomProperty *v = new DomProperty();
|
||
|
v->read(reader);
|
||
|
m_property.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomColumn::read(const QDomElement &node)
|
||
|
{
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("property")) {
|
||
|
DomProperty *v = new DomProperty();
|
||
|
v->read(e);
|
||
|
m_property.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomColumn::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("column") : tagName.toLower());
|
||
|
|
||
|
for (int i = 0; i < m_property.size(); ++i) {
|
||
|
DomProperty* v = m_property[i];
|
||
|
v->write(writer, QLatin1String("property"));
|
||
|
}
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomColumn::setElementProperty(const QList<DomProperty*>& a)
|
||
|
{
|
||
|
m_children |= Property;
|
||
|
m_property = a;
|
||
|
}
|
||
|
|
||
|
void DomItem::clear(bool clear_all)
|
||
|
{
|
||
|
qDeleteAll(m_property);
|
||
|
m_property.clear();
|
||
|
qDeleteAll(m_item);
|
||
|
m_item.clear();
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
m_has_attr_row = false;
|
||
|
m_attr_row = 0;
|
||
|
m_has_attr_column = false;
|
||
|
m_attr_column = 0;
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomItem::DomItem()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_has_attr_row = false;
|
||
|
m_attr_row = 0;
|
||
|
m_has_attr_column = false;
|
||
|
m_attr_column = 0;
|
||
|
}
|
||
|
|
||
|
DomItem::~DomItem()
|
||
|
{
|
||
|
qDeleteAll(m_property);
|
||
|
m_property.clear();
|
||
|
qDeleteAll(m_item);
|
||
|
m_item.clear();
|
||
|
}
|
||
|
|
||
|
void DomItem::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
foreach (const QXmlStreamAttribute &attribute, reader.attributes()) {
|
||
|
QStringRef name = attribute.name();
|
||
|
if (name == QLatin1String("row")) {
|
||
|
setAttributeRow(attribute.value().toString().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (name == QLatin1String("column")) {
|
||
|
setAttributeColumn(attribute.value().toString().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected attribute ") + name.toString());
|
||
|
}
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("property")) {
|
||
|
DomProperty *v = new DomProperty();
|
||
|
v->read(reader);
|
||
|
m_property.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("item")) {
|
||
|
DomItem *v = new DomItem();
|
||
|
v->read(reader);
|
||
|
m_item.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomItem::read(const QDomElement &node)
|
||
|
{
|
||
|
if (node.hasAttribute(QLatin1String("row")))
|
||
|
setAttributeRow(node.attribute(QLatin1String("row")).toInt());
|
||
|
if (node.hasAttribute(QLatin1String("column")))
|
||
|
setAttributeColumn(node.attribute(QLatin1String("column")).toInt());
|
||
|
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("property")) {
|
||
|
DomProperty *v = new DomProperty();
|
||
|
v->read(e);
|
||
|
m_property.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("item")) {
|
||
|
DomItem *v = new DomItem();
|
||
|
v->read(e);
|
||
|
m_item.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomItem::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("item") : tagName.toLower());
|
||
|
|
||
|
if (hasAttributeRow())
|
||
|
writer.writeAttribute(QLatin1String("row"), QString::number(attributeRow()));
|
||
|
|
||
|
if (hasAttributeColumn())
|
||
|
writer.writeAttribute(QLatin1String("column"), QString::number(attributeColumn()));
|
||
|
|
||
|
for (int i = 0; i < m_property.size(); ++i) {
|
||
|
DomProperty* v = m_property[i];
|
||
|
v->write(writer, QLatin1String("property"));
|
||
|
}
|
||
|
for (int i = 0; i < m_item.size(); ++i) {
|
||
|
DomItem* v = m_item[i];
|
||
|
v->write(writer, QLatin1String("item"));
|
||
|
}
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomItem::setElementProperty(const QList<DomProperty*>& a)
|
||
|
{
|
||
|
m_children |= Property;
|
||
|
m_property = a;
|
||
|
}
|
||
|
|
||
|
void DomItem::setElementItem(const QList<DomItem*>& a)
|
||
|
{
|
||
|
m_children |= Item;
|
||
|
m_item = a;
|
||
|
}
|
||
|
|
||
|
void DomWidget::clear(bool clear_all)
|
||
|
{
|
||
|
m_class.clear();
|
||
|
qDeleteAll(m_property);
|
||
|
m_property.clear();
|
||
|
qDeleteAll(m_script);
|
||
|
m_script.clear();
|
||
|
qDeleteAll(m_widgetData);
|
||
|
m_widgetData.clear();
|
||
|
qDeleteAll(m_attribute);
|
||
|
m_attribute.clear();
|
||
|
qDeleteAll(m_row);
|
||
|
m_row.clear();
|
||
|
qDeleteAll(m_column);
|
||
|
m_column.clear();
|
||
|
qDeleteAll(m_item);
|
||
|
m_item.clear();
|
||
|
qDeleteAll(m_layout);
|
||
|
m_layout.clear();
|
||
|
qDeleteAll(m_widget);
|
||
|
m_widget.clear();
|
||
|
qDeleteAll(m_action);
|
||
|
m_action.clear();
|
||
|
qDeleteAll(m_actionGroup);
|
||
|
m_actionGroup.clear();
|
||
|
qDeleteAll(m_addAction);
|
||
|
m_addAction.clear();
|
||
|
m_zOrder.clear();
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
m_has_attr_class = false;
|
||
|
m_has_attr_name = false;
|
||
|
m_has_attr_native = false;
|
||
|
m_attr_native = false;
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomWidget::DomWidget()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_has_attr_class = false;
|
||
|
m_has_attr_name = false;
|
||
|
m_has_attr_native = false;
|
||
|
m_attr_native = false;
|
||
|
}
|
||
|
|
||
|
DomWidget::~DomWidget()
|
||
|
{
|
||
|
m_class.clear();
|
||
|
qDeleteAll(m_property);
|
||
|
m_property.clear();
|
||
|
qDeleteAll(m_script);
|
||
|
m_script.clear();
|
||
|
qDeleteAll(m_widgetData);
|
||
|
m_widgetData.clear();
|
||
|
qDeleteAll(m_attribute);
|
||
|
m_attribute.clear();
|
||
|
qDeleteAll(m_row);
|
||
|
m_row.clear();
|
||
|
qDeleteAll(m_column);
|
||
|
m_column.clear();
|
||
|
qDeleteAll(m_item);
|
||
|
m_item.clear();
|
||
|
qDeleteAll(m_layout);
|
||
|
m_layout.clear();
|
||
|
qDeleteAll(m_widget);
|
||
|
m_widget.clear();
|
||
|
qDeleteAll(m_action);
|
||
|
m_action.clear();
|
||
|
qDeleteAll(m_actionGroup);
|
||
|
m_actionGroup.clear();
|
||
|
qDeleteAll(m_addAction);
|
||
|
m_addAction.clear();
|
||
|
m_zOrder.clear();
|
||
|
}
|
||
|
|
||
|
void DomWidget::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
foreach (const QXmlStreamAttribute &attribute, reader.attributes()) {
|
||
|
QStringRef name = attribute.name();
|
||
|
if (name == QLatin1String("class")) {
|
||
|
setAttributeClass(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
if (name == QLatin1String("name")) {
|
||
|
setAttributeName(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
if (name == QLatin1String("native")) {
|
||
|
setAttributeNative((attribute.value().toString() == QLatin1String("true") ? true : false));
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected attribute ") + name.toString());
|
||
|
}
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("class")) {
|
||
|
m_class.append(reader.readElementText());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("property")) {
|
||
|
DomProperty *v = new DomProperty();
|
||
|
v->read(reader);
|
||
|
m_property.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("script")) {
|
||
|
DomScript *v = new DomScript();
|
||
|
v->read(reader);
|
||
|
m_script.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("widgetdata")) {
|
||
|
DomWidgetData *v = new DomWidgetData();
|
||
|
v->read(reader);
|
||
|
m_widgetData.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("attribute")) {
|
||
|
DomProperty *v = new DomProperty();
|
||
|
v->read(reader);
|
||
|
m_attribute.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("row")) {
|
||
|
DomRow *v = new DomRow();
|
||
|
v->read(reader);
|
||
|
m_row.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("column")) {
|
||
|
DomColumn *v = new DomColumn();
|
||
|
v->read(reader);
|
||
|
m_column.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("item")) {
|
||
|
DomItem *v = new DomItem();
|
||
|
v->read(reader);
|
||
|
m_item.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("layout")) {
|
||
|
DomLayout *v = new DomLayout();
|
||
|
v->read(reader);
|
||
|
m_layout.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("widget")) {
|
||
|
DomWidget *v = new DomWidget();
|
||
|
v->read(reader);
|
||
|
m_widget.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("action")) {
|
||
|
DomAction *v = new DomAction();
|
||
|
v->read(reader);
|
||
|
m_action.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("actiongroup")) {
|
||
|
DomActionGroup *v = new DomActionGroup();
|
||
|
v->read(reader);
|
||
|
m_actionGroup.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("addaction")) {
|
||
|
DomActionRef *v = new DomActionRef();
|
||
|
v->read(reader);
|
||
|
m_addAction.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("zorder")) {
|
||
|
m_zOrder.append(reader.readElementText());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomWidget::read(const QDomElement &node)
|
||
|
{
|
||
|
if (node.hasAttribute(QLatin1String("class")))
|
||
|
setAttributeClass(node.attribute(QLatin1String("class")));
|
||
|
if (node.hasAttribute(QLatin1String("name")))
|
||
|
setAttributeName(node.attribute(QLatin1String("name")));
|
||
|
if (node.hasAttribute(QLatin1String("native")))
|
||
|
setAttributeNative((node.attribute(QLatin1String("native")) == QLatin1String("true") ? true : false));
|
||
|
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("class")) {
|
||
|
m_class.append(e.text());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("property")) {
|
||
|
DomProperty *v = new DomProperty();
|
||
|
v->read(e);
|
||
|
m_property.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("script")) {
|
||
|
DomScript *v = new DomScript();
|
||
|
v->read(e);
|
||
|
m_script.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("widgetdata")) {
|
||
|
DomWidgetData *v = new DomWidgetData();
|
||
|
v->read(e);
|
||
|
m_widgetData.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("attribute")) {
|
||
|
DomProperty *v = new DomProperty();
|
||
|
v->read(e);
|
||
|
m_attribute.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("row")) {
|
||
|
DomRow *v = new DomRow();
|
||
|
v->read(e);
|
||
|
m_row.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("column")) {
|
||
|
DomColumn *v = new DomColumn();
|
||
|
v->read(e);
|
||
|
m_column.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("item")) {
|
||
|
DomItem *v = new DomItem();
|
||
|
v->read(e);
|
||
|
m_item.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("layout")) {
|
||
|
DomLayout *v = new DomLayout();
|
||
|
v->read(e);
|
||
|
m_layout.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("widget")) {
|
||
|
DomWidget *v = new DomWidget();
|
||
|
v->read(e);
|
||
|
m_widget.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("action")) {
|
||
|
DomAction *v = new DomAction();
|
||
|
v->read(e);
|
||
|
m_action.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("actiongroup")) {
|
||
|
DomActionGroup *v = new DomActionGroup();
|
||
|
v->read(e);
|
||
|
m_actionGroup.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("addaction")) {
|
||
|
DomActionRef *v = new DomActionRef();
|
||
|
v->read(e);
|
||
|
m_addAction.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("zorder")) {
|
||
|
m_zOrder.append(e.text());
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomWidget::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("widget") : tagName.toLower());
|
||
|
|
||
|
if (hasAttributeClass())
|
||
|
writer.writeAttribute(QLatin1String("class"), attributeClass());
|
||
|
|
||
|
if (hasAttributeName())
|
||
|
writer.writeAttribute(QLatin1String("name"), attributeName());
|
||
|
|
||
|
if (hasAttributeNative())
|
||
|
writer.writeAttribute(QLatin1String("native"), (attributeNative() ? QLatin1String("true") : QLatin1String("false")));
|
||
|
|
||
|
for (int i = 0; i < m_class.size(); ++i) {
|
||
|
QString v = m_class[i];
|
||
|
writer.writeTextElement(QLatin1String("class"), v);
|
||
|
}
|
||
|
for (int i = 0; i < m_property.size(); ++i) {
|
||
|
DomProperty* v = m_property[i];
|
||
|
v->write(writer, QLatin1String("property"));
|
||
|
}
|
||
|
for (int i = 0; i < m_script.size(); ++i) {
|
||
|
DomScript* v = m_script[i];
|
||
|
v->write(writer, QLatin1String("script"));
|
||
|
}
|
||
|
for (int i = 0; i < m_widgetData.size(); ++i) {
|
||
|
DomWidgetData* v = m_widgetData[i];
|
||
|
v->write(writer, QLatin1String("widgetdata"));
|
||
|
}
|
||
|
for (int i = 0; i < m_attribute.size(); ++i) {
|
||
|
DomProperty* v = m_attribute[i];
|
||
|
v->write(writer, QLatin1String("attribute"));
|
||
|
}
|
||
|
for (int i = 0; i < m_row.size(); ++i) {
|
||
|
DomRow* v = m_row[i];
|
||
|
v->write(writer, QLatin1String("row"));
|
||
|
}
|
||
|
for (int i = 0; i < m_column.size(); ++i) {
|
||
|
DomColumn* v = m_column[i];
|
||
|
v->write(writer, QLatin1String("column"));
|
||
|
}
|
||
|
for (int i = 0; i < m_item.size(); ++i) {
|
||
|
DomItem* v = m_item[i];
|
||
|
v->write(writer, QLatin1String("item"));
|
||
|
}
|
||
|
for (int i = 0; i < m_layout.size(); ++i) {
|
||
|
DomLayout* v = m_layout[i];
|
||
|
v->write(writer, QLatin1String("layout"));
|
||
|
}
|
||
|
for (int i = 0; i < m_widget.size(); ++i) {
|
||
|
DomWidget* v = m_widget[i];
|
||
|
v->write(writer, QLatin1String("widget"));
|
||
|
}
|
||
|
for (int i = 0; i < m_action.size(); ++i) {
|
||
|
DomAction* v = m_action[i];
|
||
|
v->write(writer, QLatin1String("action"));
|
||
|
}
|
||
|
for (int i = 0; i < m_actionGroup.size(); ++i) {
|
||
|
DomActionGroup* v = m_actionGroup[i];
|
||
|
v->write(writer, QLatin1String("actiongroup"));
|
||
|
}
|
||
|
for (int i = 0; i < m_addAction.size(); ++i) {
|
||
|
DomActionRef* v = m_addAction[i];
|
||
|
v->write(writer, QLatin1String("addaction"));
|
||
|
}
|
||
|
for (int i = 0; i < m_zOrder.size(); ++i) {
|
||
|
QString v = m_zOrder[i];
|
||
|
writer.writeTextElement(QLatin1String("zorder"), v);
|
||
|
}
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomWidget::setElementClass(const QStringList& a)
|
||
|
{
|
||
|
m_children |= Class;
|
||
|
m_class = a;
|
||
|
}
|
||
|
|
||
|
void DomWidget::setElementProperty(const QList<DomProperty*>& a)
|
||
|
{
|
||
|
m_children |= Property;
|
||
|
m_property = a;
|
||
|
}
|
||
|
|
||
|
void DomWidget::setElementScript(const QList<DomScript*>& a)
|
||
|
{
|
||
|
m_children |= Script;
|
||
|
m_script = a;
|
||
|
}
|
||
|
|
||
|
void DomWidget::setElementWidgetData(const QList<DomWidgetData*>& a)
|
||
|
{
|
||
|
m_children |= WidgetData;
|
||
|
m_widgetData = a;
|
||
|
}
|
||
|
|
||
|
void DomWidget::setElementAttribute(const QList<DomProperty*>& a)
|
||
|
{
|
||
|
m_children |= Attribute;
|
||
|
m_attribute = a;
|
||
|
}
|
||
|
|
||
|
void DomWidget::setElementRow(const QList<DomRow*>& a)
|
||
|
{
|
||
|
m_children |= Row;
|
||
|
m_row = a;
|
||
|
}
|
||
|
|
||
|
void DomWidget::setElementColumn(const QList<DomColumn*>& a)
|
||
|
{
|
||
|
m_children |= Column;
|
||
|
m_column = a;
|
||
|
}
|
||
|
|
||
|
void DomWidget::setElementItem(const QList<DomItem*>& a)
|
||
|
{
|
||
|
m_children |= Item;
|
||
|
m_item = a;
|
||
|
}
|
||
|
|
||
|
void DomWidget::setElementLayout(const QList<DomLayout*>& a)
|
||
|
{
|
||
|
m_children |= Layout;
|
||
|
m_layout = a;
|
||
|
}
|
||
|
|
||
|
void DomWidget::setElementWidget(const QList<DomWidget*>& a)
|
||
|
{
|
||
|
m_children |= Widget;
|
||
|
m_widget = a;
|
||
|
}
|
||
|
|
||
|
void DomWidget::setElementAction(const QList<DomAction*>& a)
|
||
|
{
|
||
|
m_children |= Action;
|
||
|
m_action = a;
|
||
|
}
|
||
|
|
||
|
void DomWidget::setElementActionGroup(const QList<DomActionGroup*>& a)
|
||
|
{
|
||
|
m_children |= ActionGroup;
|
||
|
m_actionGroup = a;
|
||
|
}
|
||
|
|
||
|
void DomWidget::setElementAddAction(const QList<DomActionRef*>& a)
|
||
|
{
|
||
|
m_children |= AddAction;
|
||
|
m_addAction = a;
|
||
|
}
|
||
|
|
||
|
void DomWidget::setElementZOrder(const QStringList& a)
|
||
|
{
|
||
|
m_children |= ZOrder;
|
||
|
m_zOrder = a;
|
||
|
}
|
||
|
|
||
|
void DomSpacer::clear(bool clear_all)
|
||
|
{
|
||
|
qDeleteAll(m_property);
|
||
|
m_property.clear();
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
m_has_attr_name = false;
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomSpacer::DomSpacer()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_has_attr_name = false;
|
||
|
}
|
||
|
|
||
|
DomSpacer::~DomSpacer()
|
||
|
{
|
||
|
qDeleteAll(m_property);
|
||
|
m_property.clear();
|
||
|
}
|
||
|
|
||
|
void DomSpacer::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
foreach (const QXmlStreamAttribute &attribute, reader.attributes()) {
|
||
|
QStringRef name = attribute.name();
|
||
|
if (name == QLatin1String("name")) {
|
||
|
setAttributeName(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected attribute ") + name.toString());
|
||
|
}
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("property")) {
|
||
|
DomProperty *v = new DomProperty();
|
||
|
v->read(reader);
|
||
|
m_property.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomSpacer::read(const QDomElement &node)
|
||
|
{
|
||
|
if (node.hasAttribute(QLatin1String("name")))
|
||
|
setAttributeName(node.attribute(QLatin1String("name")));
|
||
|
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("property")) {
|
||
|
DomProperty *v = new DomProperty();
|
||
|
v->read(e);
|
||
|
m_property.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomSpacer::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("spacer") : tagName.toLower());
|
||
|
|
||
|
if (hasAttributeName())
|
||
|
writer.writeAttribute(QLatin1String("name"), attributeName());
|
||
|
|
||
|
for (int i = 0; i < m_property.size(); ++i) {
|
||
|
DomProperty* v = m_property[i];
|
||
|
v->write(writer, QLatin1String("property"));
|
||
|
}
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomSpacer::setElementProperty(const QList<DomProperty*>& a)
|
||
|
{
|
||
|
m_children |= Property;
|
||
|
m_property = a;
|
||
|
}
|
||
|
|
||
|
void DomColor::clear(bool clear_all)
|
||
|
{
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
m_has_attr_alpha = false;
|
||
|
m_attr_alpha = 0;
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
m_red = 0;
|
||
|
m_green = 0;
|
||
|
m_blue = 0;
|
||
|
}
|
||
|
|
||
|
DomColor::DomColor()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_has_attr_alpha = false;
|
||
|
m_attr_alpha = 0;
|
||
|
m_red = 0;
|
||
|
m_green = 0;
|
||
|
m_blue = 0;
|
||
|
}
|
||
|
|
||
|
DomColor::~DomColor()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
void DomColor::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
foreach (const QXmlStreamAttribute &attribute, reader.attributes()) {
|
||
|
QStringRef name = attribute.name();
|
||
|
if (name == QLatin1String("alpha")) {
|
||
|
setAttributeAlpha(attribute.value().toString().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected attribute ") + name.toString());
|
||
|
}
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("red")) {
|
||
|
setElementRed(reader.readElementText().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("green")) {
|
||
|
setElementGreen(reader.readElementText().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("blue")) {
|
||
|
setElementBlue(reader.readElementText().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomColor::read(const QDomElement &node)
|
||
|
{
|
||
|
if (node.hasAttribute(QLatin1String("alpha")))
|
||
|
setAttributeAlpha(node.attribute(QLatin1String("alpha")).toInt());
|
||
|
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("red")) {
|
||
|
setElementRed(e.text().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("green")) {
|
||
|
setElementGreen(e.text().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("blue")) {
|
||
|
setElementBlue(e.text().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomColor::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("color") : tagName.toLower());
|
||
|
|
||
|
if (hasAttributeAlpha())
|
||
|
writer.writeAttribute(QLatin1String("alpha"), QString::number(attributeAlpha()));
|
||
|
|
||
|
if (m_children & Red) {
|
||
|
writer.writeTextElement(QLatin1String("red"), QString::number(m_red));
|
||
|
}
|
||
|
|
||
|
if (m_children & Green) {
|
||
|
writer.writeTextElement(QLatin1String("green"), QString::number(m_green));
|
||
|
}
|
||
|
|
||
|
if (m_children & Blue) {
|
||
|
writer.writeTextElement(QLatin1String("blue"), QString::number(m_blue));
|
||
|
}
|
||
|
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomColor::setElementRed(int a)
|
||
|
{
|
||
|
m_children |= Red;
|
||
|
m_red = a;
|
||
|
}
|
||
|
|
||
|
void DomColor::setElementGreen(int a)
|
||
|
{
|
||
|
m_children |= Green;
|
||
|
m_green = a;
|
||
|
}
|
||
|
|
||
|
void DomColor::setElementBlue(int a)
|
||
|
{
|
||
|
m_children |= Blue;
|
||
|
m_blue = a;
|
||
|
}
|
||
|
|
||
|
void DomColor::clearElementRed()
|
||
|
{
|
||
|
m_children &= ~Red;
|
||
|
}
|
||
|
|
||
|
void DomColor::clearElementGreen()
|
||
|
{
|
||
|
m_children &= ~Green;
|
||
|
}
|
||
|
|
||
|
void DomColor::clearElementBlue()
|
||
|
{
|
||
|
m_children &= ~Blue;
|
||
|
}
|
||
|
|
||
|
void DomGradientStop::clear(bool clear_all)
|
||
|
{
|
||
|
delete m_color;
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
m_has_attr_position = false;
|
||
|
m_attr_position = 0.0;
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
m_color = 0;
|
||
|
}
|
||
|
|
||
|
DomGradientStop::DomGradientStop()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_has_attr_position = false;
|
||
|
m_attr_position = 0.0;
|
||
|
m_color = 0;
|
||
|
}
|
||
|
|
||
|
DomGradientStop::~DomGradientStop()
|
||
|
{
|
||
|
delete m_color;
|
||
|
}
|
||
|
|
||
|
void DomGradientStop::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
foreach (const QXmlStreamAttribute &attribute, reader.attributes()) {
|
||
|
QStringRef name = attribute.name();
|
||
|
if (name == QLatin1String("position")) {
|
||
|
setAttributePosition(attribute.value().toString().toDouble());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected attribute ") + name.toString());
|
||
|
}
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("color")) {
|
||
|
DomColor *v = new DomColor();
|
||
|
v->read(reader);
|
||
|
setElementColor(v);
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomGradientStop::read(const QDomElement &node)
|
||
|
{
|
||
|
if (node.hasAttribute(QLatin1String("position")))
|
||
|
setAttributePosition(node.attribute(QLatin1String("position")).toDouble());
|
||
|
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("color")) {
|
||
|
DomColor *v = new DomColor();
|
||
|
v->read(e);
|
||
|
setElementColor(v);
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomGradientStop::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("gradientstop") : tagName.toLower());
|
||
|
|
||
|
if (hasAttributePosition())
|
||
|
writer.writeAttribute(QLatin1String("position"), QString::number(attributePosition(), 'f', 15));
|
||
|
|
||
|
if (m_children & Color) {
|
||
|
m_color->write(writer, QLatin1String("color"));
|
||
|
}
|
||
|
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
DomColor* DomGradientStop::takeElementColor()
|
||
|
{
|
||
|
DomColor* a = m_color;
|
||
|
m_color = 0;
|
||
|
m_children ^= Color;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomGradientStop::setElementColor(DomColor* a)
|
||
|
{
|
||
|
delete m_color;
|
||
|
m_children |= Color;
|
||
|
m_color = a;
|
||
|
}
|
||
|
|
||
|
void DomGradientStop::clearElementColor()
|
||
|
{
|
||
|
delete m_color;
|
||
|
m_color = 0;
|
||
|
m_children &= ~Color;
|
||
|
}
|
||
|
|
||
|
void DomGradient::clear(bool clear_all)
|
||
|
{
|
||
|
qDeleteAll(m_gradientStop);
|
||
|
m_gradientStop.clear();
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
m_has_attr_startX = false;
|
||
|
m_attr_startX = 0.0;
|
||
|
m_has_attr_startY = false;
|
||
|
m_attr_startY = 0.0;
|
||
|
m_has_attr_endX = false;
|
||
|
m_attr_endX = 0.0;
|
||
|
m_has_attr_endY = false;
|
||
|
m_attr_endY = 0.0;
|
||
|
m_has_attr_centralX = false;
|
||
|
m_attr_centralX = 0.0;
|
||
|
m_has_attr_centralY = false;
|
||
|
m_attr_centralY = 0.0;
|
||
|
m_has_attr_focalX = false;
|
||
|
m_attr_focalX = 0.0;
|
||
|
m_has_attr_focalY = false;
|
||
|
m_attr_focalY = 0.0;
|
||
|
m_has_attr_radius = false;
|
||
|
m_attr_radius = 0.0;
|
||
|
m_has_attr_angle = false;
|
||
|
m_attr_angle = 0.0;
|
||
|
m_has_attr_type = false;
|
||
|
m_has_attr_spread = false;
|
||
|
m_has_attr_coordinateMode = false;
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomGradient::DomGradient()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_has_attr_startX = false;
|
||
|
m_attr_startX = 0.0;
|
||
|
m_has_attr_startY = false;
|
||
|
m_attr_startY = 0.0;
|
||
|
m_has_attr_endX = false;
|
||
|
m_attr_endX = 0.0;
|
||
|
m_has_attr_endY = false;
|
||
|
m_attr_endY = 0.0;
|
||
|
m_has_attr_centralX = false;
|
||
|
m_attr_centralX = 0.0;
|
||
|
m_has_attr_centralY = false;
|
||
|
m_attr_centralY = 0.0;
|
||
|
m_has_attr_focalX = false;
|
||
|
m_attr_focalX = 0.0;
|
||
|
m_has_attr_focalY = false;
|
||
|
m_attr_focalY = 0.0;
|
||
|
m_has_attr_radius = false;
|
||
|
m_attr_radius = 0.0;
|
||
|
m_has_attr_angle = false;
|
||
|
m_attr_angle = 0.0;
|
||
|
m_has_attr_type = false;
|
||
|
m_has_attr_spread = false;
|
||
|
m_has_attr_coordinateMode = false;
|
||
|
}
|
||
|
|
||
|
DomGradient::~DomGradient()
|
||
|
{
|
||
|
qDeleteAll(m_gradientStop);
|
||
|
m_gradientStop.clear();
|
||
|
}
|
||
|
|
||
|
void DomGradient::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
foreach (const QXmlStreamAttribute &attribute, reader.attributes()) {
|
||
|
QStringRef name = attribute.name();
|
||
|
if (name == QLatin1String("startx")) {
|
||
|
setAttributeStartX(attribute.value().toString().toDouble());
|
||
|
continue;
|
||
|
}
|
||
|
if (name == QLatin1String("starty")) {
|
||
|
setAttributeStartY(attribute.value().toString().toDouble());
|
||
|
continue;
|
||
|
}
|
||
|
if (name == QLatin1String("endx")) {
|
||
|
setAttributeEndX(attribute.value().toString().toDouble());
|
||
|
continue;
|
||
|
}
|
||
|
if (name == QLatin1String("endy")) {
|
||
|
setAttributeEndY(attribute.value().toString().toDouble());
|
||
|
continue;
|
||
|
}
|
||
|
if (name == QLatin1String("centralx")) {
|
||
|
setAttributeCentralX(attribute.value().toString().toDouble());
|
||
|
continue;
|
||
|
}
|
||
|
if (name == QLatin1String("centraly")) {
|
||
|
setAttributeCentralY(attribute.value().toString().toDouble());
|
||
|
continue;
|
||
|
}
|
||
|
if (name == QLatin1String("focalx")) {
|
||
|
setAttributeFocalX(attribute.value().toString().toDouble());
|
||
|
continue;
|
||
|
}
|
||
|
if (name == QLatin1String("focaly")) {
|
||
|
setAttributeFocalY(attribute.value().toString().toDouble());
|
||
|
continue;
|
||
|
}
|
||
|
if (name == QLatin1String("radius")) {
|
||
|
setAttributeRadius(attribute.value().toString().toDouble());
|
||
|
continue;
|
||
|
}
|
||
|
if (name == QLatin1String("angle")) {
|
||
|
setAttributeAngle(attribute.value().toString().toDouble());
|
||
|
continue;
|
||
|
}
|
||
|
if (name == QLatin1String("type")) {
|
||
|
setAttributeType(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
if (name == QLatin1String("spread")) {
|
||
|
setAttributeSpread(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
if (name == QLatin1String("coordinatemode")) {
|
||
|
setAttributeCoordinateMode(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected attribute ") + name.toString());
|
||
|
}
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("gradientstop")) {
|
||
|
DomGradientStop *v = new DomGradientStop();
|
||
|
v->read(reader);
|
||
|
m_gradientStop.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomGradient::read(const QDomElement &node)
|
||
|
{
|
||
|
if (node.hasAttribute(QLatin1String("startx")))
|
||
|
setAttributeStartX(node.attribute(QLatin1String("startx")).toDouble());
|
||
|
if (node.hasAttribute(QLatin1String("starty")))
|
||
|
setAttributeStartY(node.attribute(QLatin1String("starty")).toDouble());
|
||
|
if (node.hasAttribute(QLatin1String("endx")))
|
||
|
setAttributeEndX(node.attribute(QLatin1String("endx")).toDouble());
|
||
|
if (node.hasAttribute(QLatin1String("endy")))
|
||
|
setAttributeEndY(node.attribute(QLatin1String("endy")).toDouble());
|
||
|
if (node.hasAttribute(QLatin1String("centralx")))
|
||
|
setAttributeCentralX(node.attribute(QLatin1String("centralx")).toDouble());
|
||
|
if (node.hasAttribute(QLatin1String("centraly")))
|
||
|
setAttributeCentralY(node.attribute(QLatin1String("centraly")).toDouble());
|
||
|
if (node.hasAttribute(QLatin1String("focalx")))
|
||
|
setAttributeFocalX(node.attribute(QLatin1String("focalx")).toDouble());
|
||
|
if (node.hasAttribute(QLatin1String("focaly")))
|
||
|
setAttributeFocalY(node.attribute(QLatin1String("focaly")).toDouble());
|
||
|
if (node.hasAttribute(QLatin1String("radius")))
|
||
|
setAttributeRadius(node.attribute(QLatin1String("radius")).toDouble());
|
||
|
if (node.hasAttribute(QLatin1String("angle")))
|
||
|
setAttributeAngle(node.attribute(QLatin1String("angle")).toDouble());
|
||
|
if (node.hasAttribute(QLatin1String("type")))
|
||
|
setAttributeType(node.attribute(QLatin1String("type")));
|
||
|
if (node.hasAttribute(QLatin1String("spread")))
|
||
|
setAttributeSpread(node.attribute(QLatin1String("spread")));
|
||
|
if (node.hasAttribute(QLatin1String("coordinatemode")))
|
||
|
setAttributeCoordinateMode(node.attribute(QLatin1String("coordinatemode")));
|
||
|
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("gradientstop")) {
|
||
|
DomGradientStop *v = new DomGradientStop();
|
||
|
v->read(e);
|
||
|
m_gradientStop.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomGradient::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("gradient") : tagName.toLower());
|
||
|
|
||
|
if (hasAttributeStartX())
|
||
|
writer.writeAttribute(QLatin1String("startx"), QString::number(attributeStartX(), 'f', 15));
|
||
|
|
||
|
if (hasAttributeStartY())
|
||
|
writer.writeAttribute(QLatin1String("starty"), QString::number(attributeStartY(), 'f', 15));
|
||
|
|
||
|
if (hasAttributeEndX())
|
||
|
writer.writeAttribute(QLatin1String("endx"), QString::number(attributeEndX(), 'f', 15));
|
||
|
|
||
|
if (hasAttributeEndY())
|
||
|
writer.writeAttribute(QLatin1String("endy"), QString::number(attributeEndY(), 'f', 15));
|
||
|
|
||
|
if (hasAttributeCentralX())
|
||
|
writer.writeAttribute(QLatin1String("centralx"), QString::number(attributeCentralX(), 'f', 15));
|
||
|
|
||
|
if (hasAttributeCentralY())
|
||
|
writer.writeAttribute(QLatin1String("centraly"), QString::number(attributeCentralY(), 'f', 15));
|
||
|
|
||
|
if (hasAttributeFocalX())
|
||
|
writer.writeAttribute(QLatin1String("focalx"), QString::number(attributeFocalX(), 'f', 15));
|
||
|
|
||
|
if (hasAttributeFocalY())
|
||
|
writer.writeAttribute(QLatin1String("focaly"), QString::number(attributeFocalY(), 'f', 15));
|
||
|
|
||
|
if (hasAttributeRadius())
|
||
|
writer.writeAttribute(QLatin1String("radius"), QString::number(attributeRadius(), 'f', 15));
|
||
|
|
||
|
if (hasAttributeAngle())
|
||
|
writer.writeAttribute(QLatin1String("angle"), QString::number(attributeAngle(), 'f', 15));
|
||
|
|
||
|
if (hasAttributeType())
|
||
|
writer.writeAttribute(QLatin1String("type"), attributeType());
|
||
|
|
||
|
if (hasAttributeSpread())
|
||
|
writer.writeAttribute(QLatin1String("spread"), attributeSpread());
|
||
|
|
||
|
if (hasAttributeCoordinateMode())
|
||
|
writer.writeAttribute(QLatin1String("coordinatemode"), attributeCoordinateMode());
|
||
|
|
||
|
for (int i = 0; i < m_gradientStop.size(); ++i) {
|
||
|
DomGradientStop* v = m_gradientStop[i];
|
||
|
v->write(writer, QLatin1String("gradientstop"));
|
||
|
}
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomGradient::setElementGradientStop(const QList<DomGradientStop*>& a)
|
||
|
{
|
||
|
m_children |= GradientStop;
|
||
|
m_gradientStop = a;
|
||
|
}
|
||
|
|
||
|
void DomBrush::clear(bool clear_all)
|
||
|
{
|
||
|
delete m_color;
|
||
|
delete m_texture;
|
||
|
delete m_gradient;
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
m_has_attr_brushStyle = false;
|
||
|
}
|
||
|
|
||
|
m_kind = Unknown;
|
||
|
|
||
|
m_color = 0;
|
||
|
m_texture = 0;
|
||
|
m_gradient = 0;
|
||
|
}
|
||
|
|
||
|
DomBrush::DomBrush()
|
||
|
{
|
||
|
m_kind = Unknown;
|
||
|
|
||
|
m_has_attr_brushStyle = false;
|
||
|
m_color = 0;
|
||
|
m_texture = 0;
|
||
|
m_gradient = 0;
|
||
|
}
|
||
|
|
||
|
DomBrush::~DomBrush()
|
||
|
{
|
||
|
delete m_color;
|
||
|
delete m_texture;
|
||
|
delete m_gradient;
|
||
|
}
|
||
|
|
||
|
void DomBrush::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
foreach (const QXmlStreamAttribute &attribute, reader.attributes()) {
|
||
|
QStringRef name = attribute.name();
|
||
|
if (name == QLatin1String("brushstyle")) {
|
||
|
setAttributeBrushStyle(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected attribute ") + name.toString());
|
||
|
}
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("color")) {
|
||
|
DomColor *v = new DomColor();
|
||
|
v->read(reader);
|
||
|
setElementColor(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("texture")) {
|
||
|
DomProperty *v = new DomProperty();
|
||
|
v->read(reader);
|
||
|
setElementTexture(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("gradient")) {
|
||
|
DomGradient *v = new DomGradient();
|
||
|
v->read(reader);
|
||
|
setElementGradient(v);
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomBrush::read(const QDomElement &node)
|
||
|
{
|
||
|
if (node.hasAttribute(QLatin1String("brushstyle")))
|
||
|
setAttributeBrushStyle(node.attribute(QLatin1String("brushstyle")));
|
||
|
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("color")) {
|
||
|
DomColor *v = new DomColor();
|
||
|
v->read(e);
|
||
|
setElementColor(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("texture")) {
|
||
|
DomProperty *v = new DomProperty();
|
||
|
v->read(e);
|
||
|
setElementTexture(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("gradient")) {
|
||
|
DomGradient *v = new DomGradient();
|
||
|
v->read(e);
|
||
|
setElementGradient(v);
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomBrush::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("brush") : tagName.toLower());
|
||
|
|
||
|
if (hasAttributeBrushStyle())
|
||
|
writer.writeAttribute(QLatin1String("brushstyle"), attributeBrushStyle());
|
||
|
|
||
|
switch (kind()) {
|
||
|
case Color: {
|
||
|
DomColor* v = elementColor();
|
||
|
if (v != 0) {
|
||
|
v->write(writer, QLatin1String("color"));
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
case Texture: {
|
||
|
DomProperty* v = elementTexture();
|
||
|
if (v != 0) {
|
||
|
v->write(writer, QLatin1String("texture"));
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
case Gradient: {
|
||
|
DomGradient* v = elementGradient();
|
||
|
if (v != 0) {
|
||
|
v->write(writer, QLatin1String("gradient"));
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
default:
|
||
|
break;
|
||
|
}
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
DomColor* DomBrush::takeElementColor()
|
||
|
{
|
||
|
DomColor* a = m_color;
|
||
|
m_color = 0;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomBrush::setElementColor(DomColor* a)
|
||
|
{
|
||
|
clear(false);
|
||
|
m_kind = Color;
|
||
|
m_color = a;
|
||
|
}
|
||
|
|
||
|
DomProperty* DomBrush::takeElementTexture()
|
||
|
{
|
||
|
DomProperty* a = m_texture;
|
||
|
m_texture = 0;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomBrush::setElementTexture(DomProperty* a)
|
||
|
{
|
||
|
clear(false);
|
||
|
m_kind = Texture;
|
||
|
m_texture = a;
|
||
|
}
|
||
|
|
||
|
DomGradient* DomBrush::takeElementGradient()
|
||
|
{
|
||
|
DomGradient* a = m_gradient;
|
||
|
m_gradient = 0;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomBrush::setElementGradient(DomGradient* a)
|
||
|
{
|
||
|
clear(false);
|
||
|
m_kind = Gradient;
|
||
|
m_gradient = a;
|
||
|
}
|
||
|
|
||
|
void DomColorRole::clear(bool clear_all)
|
||
|
{
|
||
|
delete m_brush;
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
m_has_attr_role = false;
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
m_brush = 0;
|
||
|
}
|
||
|
|
||
|
DomColorRole::DomColorRole()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_has_attr_role = false;
|
||
|
m_brush = 0;
|
||
|
}
|
||
|
|
||
|
DomColorRole::~DomColorRole()
|
||
|
{
|
||
|
delete m_brush;
|
||
|
}
|
||
|
|
||
|
void DomColorRole::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
foreach (const QXmlStreamAttribute &attribute, reader.attributes()) {
|
||
|
QStringRef name = attribute.name();
|
||
|
if (name == QLatin1String("role")) {
|
||
|
setAttributeRole(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected attribute ") + name.toString());
|
||
|
}
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("brush")) {
|
||
|
DomBrush *v = new DomBrush();
|
||
|
v->read(reader);
|
||
|
setElementBrush(v);
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomColorRole::read(const QDomElement &node)
|
||
|
{
|
||
|
if (node.hasAttribute(QLatin1String("role")))
|
||
|
setAttributeRole(node.attribute(QLatin1String("role")));
|
||
|
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("brush")) {
|
||
|
DomBrush *v = new DomBrush();
|
||
|
v->read(e);
|
||
|
setElementBrush(v);
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomColorRole::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("colorrole") : tagName.toLower());
|
||
|
|
||
|
if (hasAttributeRole())
|
||
|
writer.writeAttribute(QLatin1String("role"), attributeRole());
|
||
|
|
||
|
if (m_children & Brush) {
|
||
|
m_brush->write(writer, QLatin1String("brush"));
|
||
|
}
|
||
|
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
DomBrush* DomColorRole::takeElementBrush()
|
||
|
{
|
||
|
DomBrush* a = m_brush;
|
||
|
m_brush = 0;
|
||
|
m_children ^= Brush;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomColorRole::setElementBrush(DomBrush* a)
|
||
|
{
|
||
|
delete m_brush;
|
||
|
m_children |= Brush;
|
||
|
m_brush = a;
|
||
|
}
|
||
|
|
||
|
void DomColorRole::clearElementBrush()
|
||
|
{
|
||
|
delete m_brush;
|
||
|
m_brush = 0;
|
||
|
m_children &= ~Brush;
|
||
|
}
|
||
|
|
||
|
void DomColorGroup::clear(bool clear_all)
|
||
|
{
|
||
|
qDeleteAll(m_colorRole);
|
||
|
m_colorRole.clear();
|
||
|
qDeleteAll(m_color);
|
||
|
m_color.clear();
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomColorGroup::DomColorGroup()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomColorGroup::~DomColorGroup()
|
||
|
{
|
||
|
qDeleteAll(m_colorRole);
|
||
|
m_colorRole.clear();
|
||
|
qDeleteAll(m_color);
|
||
|
m_color.clear();
|
||
|
}
|
||
|
|
||
|
void DomColorGroup::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("colorrole")) {
|
||
|
DomColorRole *v = new DomColorRole();
|
||
|
v->read(reader);
|
||
|
m_colorRole.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("color")) {
|
||
|
DomColor *v = new DomColor();
|
||
|
v->read(reader);
|
||
|
m_color.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomColorGroup::read(const QDomElement &node)
|
||
|
{
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("colorrole")) {
|
||
|
DomColorRole *v = new DomColorRole();
|
||
|
v->read(e);
|
||
|
m_colorRole.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("color")) {
|
||
|
DomColor *v = new DomColor();
|
||
|
v->read(e);
|
||
|
m_color.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomColorGroup::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("colorgroup") : tagName.toLower());
|
||
|
|
||
|
for (int i = 0; i < m_colorRole.size(); ++i) {
|
||
|
DomColorRole* v = m_colorRole[i];
|
||
|
v->write(writer, QLatin1String("colorrole"));
|
||
|
}
|
||
|
for (int i = 0; i < m_color.size(); ++i) {
|
||
|
DomColor* v = m_color[i];
|
||
|
v->write(writer, QLatin1String("color"));
|
||
|
}
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomColorGroup::setElementColorRole(const QList<DomColorRole*>& a)
|
||
|
{
|
||
|
m_children |= ColorRole;
|
||
|
m_colorRole = a;
|
||
|
}
|
||
|
|
||
|
void DomColorGroup::setElementColor(const QList<DomColor*>& a)
|
||
|
{
|
||
|
m_children |= Color;
|
||
|
m_color = a;
|
||
|
}
|
||
|
|
||
|
void DomPalette::clear(bool clear_all)
|
||
|
{
|
||
|
delete m_active;
|
||
|
delete m_inactive;
|
||
|
delete m_disabled;
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
m_active = 0;
|
||
|
m_inactive = 0;
|
||
|
m_disabled = 0;
|
||
|
}
|
||
|
|
||
|
DomPalette::DomPalette()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_active = 0;
|
||
|
m_inactive = 0;
|
||
|
m_disabled = 0;
|
||
|
}
|
||
|
|
||
|
DomPalette::~DomPalette()
|
||
|
{
|
||
|
delete m_active;
|
||
|
delete m_inactive;
|
||
|
delete m_disabled;
|
||
|
}
|
||
|
|
||
|
void DomPalette::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("active")) {
|
||
|
DomColorGroup *v = new DomColorGroup();
|
||
|
v->read(reader);
|
||
|
setElementActive(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("inactive")) {
|
||
|
DomColorGroup *v = new DomColorGroup();
|
||
|
v->read(reader);
|
||
|
setElementInactive(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("disabled")) {
|
||
|
DomColorGroup *v = new DomColorGroup();
|
||
|
v->read(reader);
|
||
|
setElementDisabled(v);
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomPalette::read(const QDomElement &node)
|
||
|
{
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("active")) {
|
||
|
DomColorGroup *v = new DomColorGroup();
|
||
|
v->read(e);
|
||
|
setElementActive(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("inactive")) {
|
||
|
DomColorGroup *v = new DomColorGroup();
|
||
|
v->read(e);
|
||
|
setElementInactive(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("disabled")) {
|
||
|
DomColorGroup *v = new DomColorGroup();
|
||
|
v->read(e);
|
||
|
setElementDisabled(v);
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomPalette::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("palette") : tagName.toLower());
|
||
|
|
||
|
if (m_children & Active) {
|
||
|
m_active->write(writer, QLatin1String("active"));
|
||
|
}
|
||
|
|
||
|
if (m_children & Inactive) {
|
||
|
m_inactive->write(writer, QLatin1String("inactive"));
|
||
|
}
|
||
|
|
||
|
if (m_children & Disabled) {
|
||
|
m_disabled->write(writer, QLatin1String("disabled"));
|
||
|
}
|
||
|
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
DomColorGroup* DomPalette::takeElementActive()
|
||
|
{
|
||
|
DomColorGroup* a = m_active;
|
||
|
m_active = 0;
|
||
|
m_children ^= Active;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomPalette::setElementActive(DomColorGroup* a)
|
||
|
{
|
||
|
delete m_active;
|
||
|
m_children |= Active;
|
||
|
m_active = a;
|
||
|
}
|
||
|
|
||
|
DomColorGroup* DomPalette::takeElementInactive()
|
||
|
{
|
||
|
DomColorGroup* a = m_inactive;
|
||
|
m_inactive = 0;
|
||
|
m_children ^= Inactive;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomPalette::setElementInactive(DomColorGroup* a)
|
||
|
{
|
||
|
delete m_inactive;
|
||
|
m_children |= Inactive;
|
||
|
m_inactive = a;
|
||
|
}
|
||
|
|
||
|
DomColorGroup* DomPalette::takeElementDisabled()
|
||
|
{
|
||
|
DomColorGroup* a = m_disabled;
|
||
|
m_disabled = 0;
|
||
|
m_children ^= Disabled;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomPalette::setElementDisabled(DomColorGroup* a)
|
||
|
{
|
||
|
delete m_disabled;
|
||
|
m_children |= Disabled;
|
||
|
m_disabled = a;
|
||
|
}
|
||
|
|
||
|
void DomPalette::clearElementActive()
|
||
|
{
|
||
|
delete m_active;
|
||
|
m_active = 0;
|
||
|
m_children &= ~Active;
|
||
|
}
|
||
|
|
||
|
void DomPalette::clearElementInactive()
|
||
|
{
|
||
|
delete m_inactive;
|
||
|
m_inactive = 0;
|
||
|
m_children &= ~Inactive;
|
||
|
}
|
||
|
|
||
|
void DomPalette::clearElementDisabled()
|
||
|
{
|
||
|
delete m_disabled;
|
||
|
m_disabled = 0;
|
||
|
m_children &= ~Disabled;
|
||
|
}
|
||
|
|
||
|
void DomFont::clear(bool clear_all)
|
||
|
{
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
m_pointSize = 0;
|
||
|
m_weight = 0;
|
||
|
m_italic = false;
|
||
|
m_bold = false;
|
||
|
m_underline = false;
|
||
|
m_strikeOut = false;
|
||
|
m_antialiasing = false;
|
||
|
m_kerning = false;
|
||
|
}
|
||
|
|
||
|
DomFont::DomFont()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_pointSize = 0;
|
||
|
m_weight = 0;
|
||
|
m_italic = false;
|
||
|
m_bold = false;
|
||
|
m_underline = false;
|
||
|
m_strikeOut = false;
|
||
|
m_antialiasing = false;
|
||
|
m_kerning = false;
|
||
|
}
|
||
|
|
||
|
DomFont::~DomFont()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
void DomFont::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("family")) {
|
||
|
setElementFamily(reader.readElementText());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("pointsize")) {
|
||
|
setElementPointSize(reader.readElementText().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("weight")) {
|
||
|
setElementWeight(reader.readElementText().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("italic")) {
|
||
|
setElementItalic((reader.readElementText() == QLatin1String("true") ? true : false));
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("bold")) {
|
||
|
setElementBold((reader.readElementText() == QLatin1String("true") ? true : false));
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("underline")) {
|
||
|
setElementUnderline((reader.readElementText() == QLatin1String("true") ? true : false));
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("strikeout")) {
|
||
|
setElementStrikeOut((reader.readElementText() == QLatin1String("true") ? true : false));
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("antialiasing")) {
|
||
|
setElementAntialiasing((reader.readElementText() == QLatin1String("true") ? true : false));
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("stylestrategy")) {
|
||
|
setElementStyleStrategy(reader.readElementText());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("kerning")) {
|
||
|
setElementKerning((reader.readElementText() == QLatin1String("true") ? true : false));
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomFont::read(const QDomElement &node)
|
||
|
{
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("family")) {
|
||
|
setElementFamily(e.text());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("pointsize")) {
|
||
|
setElementPointSize(e.text().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("weight")) {
|
||
|
setElementWeight(e.text().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("italic")) {
|
||
|
setElementItalic((e.text() == QLatin1String("true") ? true : false));
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("bold")) {
|
||
|
setElementBold((e.text() == QLatin1String("true") ? true : false));
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("underline")) {
|
||
|
setElementUnderline((e.text() == QLatin1String("true") ? true : false));
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("strikeout")) {
|
||
|
setElementStrikeOut((e.text() == QLatin1String("true") ? true : false));
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("antialiasing")) {
|
||
|
setElementAntialiasing((e.text() == QLatin1String("true") ? true : false));
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("stylestrategy")) {
|
||
|
setElementStyleStrategy(e.text());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("kerning")) {
|
||
|
setElementKerning((e.text() == QLatin1String("true") ? true : false));
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomFont::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("font") : tagName.toLower());
|
||
|
|
||
|
if (m_children & Family) {
|
||
|
writer.writeTextElement(QLatin1String("family"), m_family);
|
||
|
}
|
||
|
|
||
|
if (m_children & PointSize) {
|
||
|
writer.writeTextElement(QLatin1String("pointsize"), QString::number(m_pointSize));
|
||
|
}
|
||
|
|
||
|
if (m_children & Weight) {
|
||
|
writer.writeTextElement(QLatin1String("weight"), QString::number(m_weight));
|
||
|
}
|
||
|
|
||
|
if (m_children & Italic) {
|
||
|
writer.writeTextElement(QLatin1String("italic"), (m_italic ? QLatin1String("true") : QLatin1String("false")));
|
||
|
}
|
||
|
|
||
|
if (m_children & Bold) {
|
||
|
writer.writeTextElement(QLatin1String("bold"), (m_bold ? QLatin1String("true") : QLatin1String("false")));
|
||
|
}
|
||
|
|
||
|
if (m_children & Underline) {
|
||
|
writer.writeTextElement(QLatin1String("underline"), (m_underline ? QLatin1String("true") : QLatin1String("false")));
|
||
|
}
|
||
|
|
||
|
if (m_children & StrikeOut) {
|
||
|
writer.writeTextElement(QLatin1String("strikeout"), (m_strikeOut ? QLatin1String("true") : QLatin1String("false")));
|
||
|
}
|
||
|
|
||
|
if (m_children & Antialiasing) {
|
||
|
writer.writeTextElement(QLatin1String("antialiasing"), (m_antialiasing ? QLatin1String("true") : QLatin1String("false")));
|
||
|
}
|
||
|
|
||
|
if (m_children & StyleStrategy) {
|
||
|
writer.writeTextElement(QLatin1String("stylestrategy"), m_styleStrategy);
|
||
|
}
|
||
|
|
||
|
if (m_children & Kerning) {
|
||
|
writer.writeTextElement(QLatin1String("kerning"), (m_kerning ? QLatin1String("true") : QLatin1String("false")));
|
||
|
}
|
||
|
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomFont::setElementFamily(const QString& a)
|
||
|
{
|
||
|
m_children |= Family;
|
||
|
m_family = a;
|
||
|
}
|
||
|
|
||
|
void DomFont::setElementPointSize(int a)
|
||
|
{
|
||
|
m_children |= PointSize;
|
||
|
m_pointSize = a;
|
||
|
}
|
||
|
|
||
|
void DomFont::setElementWeight(int a)
|
||
|
{
|
||
|
m_children |= Weight;
|
||
|
m_weight = a;
|
||
|
}
|
||
|
|
||
|
void DomFont::setElementItalic(bool a)
|
||
|
{
|
||
|
m_children |= Italic;
|
||
|
m_italic = a;
|
||
|
}
|
||
|
|
||
|
void DomFont::setElementBold(bool a)
|
||
|
{
|
||
|
m_children |= Bold;
|
||
|
m_bold = a;
|
||
|
}
|
||
|
|
||
|
void DomFont::setElementUnderline(bool a)
|
||
|
{
|
||
|
m_children |= Underline;
|
||
|
m_underline = a;
|
||
|
}
|
||
|
|
||
|
void DomFont::setElementStrikeOut(bool a)
|
||
|
{
|
||
|
m_children |= StrikeOut;
|
||
|
m_strikeOut = a;
|
||
|
}
|
||
|
|
||
|
void DomFont::setElementAntialiasing(bool a)
|
||
|
{
|
||
|
m_children |= Antialiasing;
|
||
|
m_antialiasing = a;
|
||
|
}
|
||
|
|
||
|
void DomFont::setElementStyleStrategy(const QString& a)
|
||
|
{
|
||
|
m_children |= StyleStrategy;
|
||
|
m_styleStrategy = a;
|
||
|
}
|
||
|
|
||
|
void DomFont::setElementKerning(bool a)
|
||
|
{
|
||
|
m_children |= Kerning;
|
||
|
m_kerning = a;
|
||
|
}
|
||
|
|
||
|
void DomFont::clearElementFamily()
|
||
|
{
|
||
|
m_children &= ~Family;
|
||
|
}
|
||
|
|
||
|
void DomFont::clearElementPointSize()
|
||
|
{
|
||
|
m_children &= ~PointSize;
|
||
|
}
|
||
|
|
||
|
void DomFont::clearElementWeight()
|
||
|
{
|
||
|
m_children &= ~Weight;
|
||
|
}
|
||
|
|
||
|
void DomFont::clearElementItalic()
|
||
|
{
|
||
|
m_children &= ~Italic;
|
||
|
}
|
||
|
|
||
|
void DomFont::clearElementBold()
|
||
|
{
|
||
|
m_children &= ~Bold;
|
||
|
}
|
||
|
|
||
|
void DomFont::clearElementUnderline()
|
||
|
{
|
||
|
m_children &= ~Underline;
|
||
|
}
|
||
|
|
||
|
void DomFont::clearElementStrikeOut()
|
||
|
{
|
||
|
m_children &= ~StrikeOut;
|
||
|
}
|
||
|
|
||
|
void DomFont::clearElementAntialiasing()
|
||
|
{
|
||
|
m_children &= ~Antialiasing;
|
||
|
}
|
||
|
|
||
|
void DomFont::clearElementStyleStrategy()
|
||
|
{
|
||
|
m_children &= ~StyleStrategy;
|
||
|
}
|
||
|
|
||
|
void DomFont::clearElementKerning()
|
||
|
{
|
||
|
m_children &= ~Kerning;
|
||
|
}
|
||
|
|
||
|
void DomPoint::clear(bool clear_all)
|
||
|
{
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
m_x = 0;
|
||
|
m_y = 0;
|
||
|
}
|
||
|
|
||
|
DomPoint::DomPoint()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_x = 0;
|
||
|
m_y = 0;
|
||
|
}
|
||
|
|
||
|
DomPoint::~DomPoint()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
void DomPoint::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QString(QLatin1Char('x'))) {
|
||
|
setElementX(reader.readElementText().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QString(QLatin1Char('y'))) {
|
||
|
setElementY(reader.readElementText().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomPoint::read(const QDomElement &node)
|
||
|
{
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QString(QLatin1Char('x'))) {
|
||
|
setElementX(e.text().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QString(QLatin1Char('y'))) {
|
||
|
setElementY(e.text().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomPoint::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("point") : tagName.toLower());
|
||
|
|
||
|
if (m_children & X) {
|
||
|
writer.writeTextElement(QString(QLatin1Char('x')), QString::number(m_x));
|
||
|
}
|
||
|
|
||
|
if (m_children & Y) {
|
||
|
writer.writeTextElement(QString(QLatin1Char('y')), QString::number(m_y));
|
||
|
}
|
||
|
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomPoint::setElementX(int a)
|
||
|
{
|
||
|
m_children |= X;
|
||
|
m_x = a;
|
||
|
}
|
||
|
|
||
|
void DomPoint::setElementY(int a)
|
||
|
{
|
||
|
m_children |= Y;
|
||
|
m_y = a;
|
||
|
}
|
||
|
|
||
|
void DomPoint::clearElementX()
|
||
|
{
|
||
|
m_children &= ~X;
|
||
|
}
|
||
|
|
||
|
void DomPoint::clearElementY()
|
||
|
{
|
||
|
m_children &= ~Y;
|
||
|
}
|
||
|
|
||
|
void DomRect::clear(bool clear_all)
|
||
|
{
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
m_x = 0;
|
||
|
m_y = 0;
|
||
|
m_width = 0;
|
||
|
m_height = 0;
|
||
|
}
|
||
|
|
||
|
DomRect::DomRect()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_x = 0;
|
||
|
m_y = 0;
|
||
|
m_width = 0;
|
||
|
m_height = 0;
|
||
|
}
|
||
|
|
||
|
DomRect::~DomRect()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
void DomRect::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QString(QLatin1Char('x'))) {
|
||
|
setElementX(reader.readElementText().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QString(QLatin1Char('y'))) {
|
||
|
setElementY(reader.readElementText().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("width")) {
|
||
|
setElementWidth(reader.readElementText().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("height")) {
|
||
|
setElementHeight(reader.readElementText().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomRect::read(const QDomElement &node)
|
||
|
{
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QString(QLatin1Char('x'))) {
|
||
|
setElementX(e.text().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QString(QLatin1Char('y'))) {
|
||
|
setElementY(e.text().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("width")) {
|
||
|
setElementWidth(e.text().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("height")) {
|
||
|
setElementHeight(e.text().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomRect::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("rect") : tagName.toLower());
|
||
|
|
||
|
if (m_children & X) {
|
||
|
writer.writeTextElement(QString(QLatin1Char('x')), QString::number(m_x));
|
||
|
}
|
||
|
|
||
|
if (m_children & Y) {
|
||
|
writer.writeTextElement(QString(QLatin1Char('y')), QString::number(m_y));
|
||
|
}
|
||
|
|
||
|
if (m_children & Width) {
|
||
|
writer.writeTextElement(QLatin1String("width"), QString::number(m_width));
|
||
|
}
|
||
|
|
||
|
if (m_children & Height) {
|
||
|
writer.writeTextElement(QLatin1String("height"), QString::number(m_height));
|
||
|
}
|
||
|
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomRect::setElementX(int a)
|
||
|
{
|
||
|
m_children |= X;
|
||
|
m_x = a;
|
||
|
}
|
||
|
|
||
|
void DomRect::setElementY(int a)
|
||
|
{
|
||
|
m_children |= Y;
|
||
|
m_y = a;
|
||
|
}
|
||
|
|
||
|
void DomRect::setElementWidth(int a)
|
||
|
{
|
||
|
m_children |= Width;
|
||
|
m_width = a;
|
||
|
}
|
||
|
|
||
|
void DomRect::setElementHeight(int a)
|
||
|
{
|
||
|
m_children |= Height;
|
||
|
m_height = a;
|
||
|
}
|
||
|
|
||
|
void DomRect::clearElementX()
|
||
|
{
|
||
|
m_children &= ~X;
|
||
|
}
|
||
|
|
||
|
void DomRect::clearElementY()
|
||
|
{
|
||
|
m_children &= ~Y;
|
||
|
}
|
||
|
|
||
|
void DomRect::clearElementWidth()
|
||
|
{
|
||
|
m_children &= ~Width;
|
||
|
}
|
||
|
|
||
|
void DomRect::clearElementHeight()
|
||
|
{
|
||
|
m_children &= ~Height;
|
||
|
}
|
||
|
|
||
|
void DomLocale::clear(bool clear_all)
|
||
|
{
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
m_has_attr_language = false;
|
||
|
m_has_attr_country = false;
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomLocale::DomLocale()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_has_attr_language = false;
|
||
|
m_has_attr_country = false;
|
||
|
}
|
||
|
|
||
|
DomLocale::~DomLocale()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
void DomLocale::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
foreach (const QXmlStreamAttribute &attribute, reader.attributes()) {
|
||
|
QStringRef name = attribute.name();
|
||
|
if (name == QLatin1String("language")) {
|
||
|
setAttributeLanguage(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
if (name == QLatin1String("country")) {
|
||
|
setAttributeCountry(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected attribute ") + name.toString());
|
||
|
}
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomLocale::read(const QDomElement &node)
|
||
|
{
|
||
|
if (node.hasAttribute(QLatin1String("language")))
|
||
|
setAttributeLanguage(node.attribute(QLatin1String("language")));
|
||
|
if (node.hasAttribute(QLatin1String("country")))
|
||
|
setAttributeCountry(node.attribute(QLatin1String("country")));
|
||
|
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomLocale::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("locale") : tagName.toLower());
|
||
|
|
||
|
if (hasAttributeLanguage())
|
||
|
writer.writeAttribute(QLatin1String("language"), attributeLanguage());
|
||
|
|
||
|
if (hasAttributeCountry())
|
||
|
writer.writeAttribute(QLatin1String("country"), attributeCountry());
|
||
|
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomSizePolicy::clear(bool clear_all)
|
||
|
{
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
m_has_attr_hSizeType = false;
|
||
|
m_has_attr_vSizeType = false;
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
m_hSizeType = 0;
|
||
|
m_vSizeType = 0;
|
||
|
m_horStretch = 0;
|
||
|
m_verStretch = 0;
|
||
|
}
|
||
|
|
||
|
DomSizePolicy::DomSizePolicy()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_has_attr_hSizeType = false;
|
||
|
m_has_attr_vSizeType = false;
|
||
|
m_hSizeType = 0;
|
||
|
m_vSizeType = 0;
|
||
|
m_horStretch = 0;
|
||
|
m_verStretch = 0;
|
||
|
}
|
||
|
|
||
|
DomSizePolicy::~DomSizePolicy()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
void DomSizePolicy::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
foreach (const QXmlStreamAttribute &attribute, reader.attributes()) {
|
||
|
QStringRef name = attribute.name();
|
||
|
if (name == QLatin1String("hsizetype")) {
|
||
|
setAttributeHSizeType(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
if (name == QLatin1String("vsizetype")) {
|
||
|
setAttributeVSizeType(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected attribute ") + name.toString());
|
||
|
}
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("hsizetype")) {
|
||
|
setElementHSizeType(reader.readElementText().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("vsizetype")) {
|
||
|
setElementVSizeType(reader.readElementText().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("horstretch")) {
|
||
|
setElementHorStretch(reader.readElementText().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("verstretch")) {
|
||
|
setElementVerStretch(reader.readElementText().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomSizePolicy::read(const QDomElement &node)
|
||
|
{
|
||
|
if (node.hasAttribute(QLatin1String("hsizetype")))
|
||
|
setAttributeHSizeType(node.attribute(QLatin1String("hsizetype")));
|
||
|
if (node.hasAttribute(QLatin1String("vsizetype")))
|
||
|
setAttributeVSizeType(node.attribute(QLatin1String("vsizetype")));
|
||
|
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("hsizetype")) {
|
||
|
setElementHSizeType(e.text().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("vsizetype")) {
|
||
|
setElementVSizeType(e.text().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("horstretch")) {
|
||
|
setElementHorStretch(e.text().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("verstretch")) {
|
||
|
setElementVerStretch(e.text().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomSizePolicy::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("sizepolicy") : tagName.toLower());
|
||
|
|
||
|
if (hasAttributeHSizeType())
|
||
|
writer.writeAttribute(QLatin1String("hsizetype"), attributeHSizeType());
|
||
|
|
||
|
if (hasAttributeVSizeType())
|
||
|
writer.writeAttribute(QLatin1String("vsizetype"), attributeVSizeType());
|
||
|
|
||
|
if (m_children & HSizeType) {
|
||
|
writer.writeTextElement(QLatin1String("hsizetype"), QString::number(m_hSizeType));
|
||
|
}
|
||
|
|
||
|
if (m_children & VSizeType) {
|
||
|
writer.writeTextElement(QLatin1String("vsizetype"), QString::number(m_vSizeType));
|
||
|
}
|
||
|
|
||
|
if (m_children & HorStretch) {
|
||
|
writer.writeTextElement(QLatin1String("horstretch"), QString::number(m_horStretch));
|
||
|
}
|
||
|
|
||
|
if (m_children & VerStretch) {
|
||
|
writer.writeTextElement(QLatin1String("verstretch"), QString::number(m_verStretch));
|
||
|
}
|
||
|
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomSizePolicy::setElementHSizeType(int a)
|
||
|
{
|
||
|
m_children |= HSizeType;
|
||
|
m_hSizeType = a;
|
||
|
}
|
||
|
|
||
|
void DomSizePolicy::setElementVSizeType(int a)
|
||
|
{
|
||
|
m_children |= VSizeType;
|
||
|
m_vSizeType = a;
|
||
|
}
|
||
|
|
||
|
void DomSizePolicy::setElementHorStretch(int a)
|
||
|
{
|
||
|
m_children |= HorStretch;
|
||
|
m_horStretch = a;
|
||
|
}
|
||
|
|
||
|
void DomSizePolicy::setElementVerStretch(int a)
|
||
|
{
|
||
|
m_children |= VerStretch;
|
||
|
m_verStretch = a;
|
||
|
}
|
||
|
|
||
|
void DomSizePolicy::clearElementHSizeType()
|
||
|
{
|
||
|
m_children &= ~HSizeType;
|
||
|
}
|
||
|
|
||
|
void DomSizePolicy::clearElementVSizeType()
|
||
|
{
|
||
|
m_children &= ~VSizeType;
|
||
|
}
|
||
|
|
||
|
void DomSizePolicy::clearElementHorStretch()
|
||
|
{
|
||
|
m_children &= ~HorStretch;
|
||
|
}
|
||
|
|
||
|
void DomSizePolicy::clearElementVerStretch()
|
||
|
{
|
||
|
m_children &= ~VerStretch;
|
||
|
}
|
||
|
|
||
|
void DomSize::clear(bool clear_all)
|
||
|
{
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
m_width = 0;
|
||
|
m_height = 0;
|
||
|
}
|
||
|
|
||
|
DomSize::DomSize()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_width = 0;
|
||
|
m_height = 0;
|
||
|
}
|
||
|
|
||
|
DomSize::~DomSize()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
void DomSize::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("width")) {
|
||
|
setElementWidth(reader.readElementText().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("height")) {
|
||
|
setElementHeight(reader.readElementText().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomSize::read(const QDomElement &node)
|
||
|
{
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("width")) {
|
||
|
setElementWidth(e.text().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("height")) {
|
||
|
setElementHeight(e.text().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomSize::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("size") : tagName.toLower());
|
||
|
|
||
|
if (m_children & Width) {
|
||
|
writer.writeTextElement(QLatin1String("width"), QString::number(m_width));
|
||
|
}
|
||
|
|
||
|
if (m_children & Height) {
|
||
|
writer.writeTextElement(QLatin1String("height"), QString::number(m_height));
|
||
|
}
|
||
|
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomSize::setElementWidth(int a)
|
||
|
{
|
||
|
m_children |= Width;
|
||
|
m_width = a;
|
||
|
}
|
||
|
|
||
|
void DomSize::setElementHeight(int a)
|
||
|
{
|
||
|
m_children |= Height;
|
||
|
m_height = a;
|
||
|
}
|
||
|
|
||
|
void DomSize::clearElementWidth()
|
||
|
{
|
||
|
m_children &= ~Width;
|
||
|
}
|
||
|
|
||
|
void DomSize::clearElementHeight()
|
||
|
{
|
||
|
m_children &= ~Height;
|
||
|
}
|
||
|
|
||
|
void DomDate::clear(bool clear_all)
|
||
|
{
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
m_year = 0;
|
||
|
m_month = 0;
|
||
|
m_day = 0;
|
||
|
}
|
||
|
|
||
|
DomDate::DomDate()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_year = 0;
|
||
|
m_month = 0;
|
||
|
m_day = 0;
|
||
|
}
|
||
|
|
||
|
DomDate::~DomDate()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
void DomDate::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("year")) {
|
||
|
setElementYear(reader.readElementText().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("month")) {
|
||
|
setElementMonth(reader.readElementText().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("day")) {
|
||
|
setElementDay(reader.readElementText().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomDate::read(const QDomElement &node)
|
||
|
{
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("year")) {
|
||
|
setElementYear(e.text().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("month")) {
|
||
|
setElementMonth(e.text().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("day")) {
|
||
|
setElementDay(e.text().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomDate::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("date") : tagName.toLower());
|
||
|
|
||
|
if (m_children & Year) {
|
||
|
writer.writeTextElement(QLatin1String("year"), QString::number(m_year));
|
||
|
}
|
||
|
|
||
|
if (m_children & Month) {
|
||
|
writer.writeTextElement(QLatin1String("month"), QString::number(m_month));
|
||
|
}
|
||
|
|
||
|
if (m_children & Day) {
|
||
|
writer.writeTextElement(QLatin1String("day"), QString::number(m_day));
|
||
|
}
|
||
|
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomDate::setElementYear(int a)
|
||
|
{
|
||
|
m_children |= Year;
|
||
|
m_year = a;
|
||
|
}
|
||
|
|
||
|
void DomDate::setElementMonth(int a)
|
||
|
{
|
||
|
m_children |= Month;
|
||
|
m_month = a;
|
||
|
}
|
||
|
|
||
|
void DomDate::setElementDay(int a)
|
||
|
{
|
||
|
m_children |= Day;
|
||
|
m_day = a;
|
||
|
}
|
||
|
|
||
|
void DomDate::clearElementYear()
|
||
|
{
|
||
|
m_children &= ~Year;
|
||
|
}
|
||
|
|
||
|
void DomDate::clearElementMonth()
|
||
|
{
|
||
|
m_children &= ~Month;
|
||
|
}
|
||
|
|
||
|
void DomDate::clearElementDay()
|
||
|
{
|
||
|
m_children &= ~Day;
|
||
|
}
|
||
|
|
||
|
void DomTime::clear(bool clear_all)
|
||
|
{
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
m_hour = 0;
|
||
|
m_minute = 0;
|
||
|
m_second = 0;
|
||
|
}
|
||
|
|
||
|
DomTime::DomTime()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_hour = 0;
|
||
|
m_minute = 0;
|
||
|
m_second = 0;
|
||
|
}
|
||
|
|
||
|
DomTime::~DomTime()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
void DomTime::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("hour")) {
|
||
|
setElementHour(reader.readElementText().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("minute")) {
|
||
|
setElementMinute(reader.readElementText().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("second")) {
|
||
|
setElementSecond(reader.readElementText().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomTime::read(const QDomElement &node)
|
||
|
{
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("hour")) {
|
||
|
setElementHour(e.text().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("minute")) {
|
||
|
setElementMinute(e.text().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("second")) {
|
||
|
setElementSecond(e.text().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomTime::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("time") : tagName.toLower());
|
||
|
|
||
|
if (m_children & Hour) {
|
||
|
writer.writeTextElement(QLatin1String("hour"), QString::number(m_hour));
|
||
|
}
|
||
|
|
||
|
if (m_children & Minute) {
|
||
|
writer.writeTextElement(QLatin1String("minute"), QString::number(m_minute));
|
||
|
}
|
||
|
|
||
|
if (m_children & Second) {
|
||
|
writer.writeTextElement(QLatin1String("second"), QString::number(m_second));
|
||
|
}
|
||
|
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomTime::setElementHour(int a)
|
||
|
{
|
||
|
m_children |= Hour;
|
||
|
m_hour = a;
|
||
|
}
|
||
|
|
||
|
void DomTime::setElementMinute(int a)
|
||
|
{
|
||
|
m_children |= Minute;
|
||
|
m_minute = a;
|
||
|
}
|
||
|
|
||
|
void DomTime::setElementSecond(int a)
|
||
|
{
|
||
|
m_children |= Second;
|
||
|
m_second = a;
|
||
|
}
|
||
|
|
||
|
void DomTime::clearElementHour()
|
||
|
{
|
||
|
m_children &= ~Hour;
|
||
|
}
|
||
|
|
||
|
void DomTime::clearElementMinute()
|
||
|
{
|
||
|
m_children &= ~Minute;
|
||
|
}
|
||
|
|
||
|
void DomTime::clearElementSecond()
|
||
|
{
|
||
|
m_children &= ~Second;
|
||
|
}
|
||
|
|
||
|
void DomDateTime::clear(bool clear_all)
|
||
|
{
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
m_hour = 0;
|
||
|
m_minute = 0;
|
||
|
m_second = 0;
|
||
|
m_year = 0;
|
||
|
m_month = 0;
|
||
|
m_day = 0;
|
||
|
}
|
||
|
|
||
|
DomDateTime::DomDateTime()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_hour = 0;
|
||
|
m_minute = 0;
|
||
|
m_second = 0;
|
||
|
m_year = 0;
|
||
|
m_month = 0;
|
||
|
m_day = 0;
|
||
|
}
|
||
|
|
||
|
DomDateTime::~DomDateTime()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
void DomDateTime::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("hour")) {
|
||
|
setElementHour(reader.readElementText().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("minute")) {
|
||
|
setElementMinute(reader.readElementText().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("second")) {
|
||
|
setElementSecond(reader.readElementText().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("year")) {
|
||
|
setElementYear(reader.readElementText().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("month")) {
|
||
|
setElementMonth(reader.readElementText().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("day")) {
|
||
|
setElementDay(reader.readElementText().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomDateTime::read(const QDomElement &node)
|
||
|
{
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("hour")) {
|
||
|
setElementHour(e.text().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("minute")) {
|
||
|
setElementMinute(e.text().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("second")) {
|
||
|
setElementSecond(e.text().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("year")) {
|
||
|
setElementYear(e.text().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("month")) {
|
||
|
setElementMonth(e.text().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("day")) {
|
||
|
setElementDay(e.text().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomDateTime::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("datetime") : tagName.toLower());
|
||
|
|
||
|
if (m_children & Hour) {
|
||
|
writer.writeTextElement(QLatin1String("hour"), QString::number(m_hour));
|
||
|
}
|
||
|
|
||
|
if (m_children & Minute) {
|
||
|
writer.writeTextElement(QLatin1String("minute"), QString::number(m_minute));
|
||
|
}
|
||
|
|
||
|
if (m_children & Second) {
|
||
|
writer.writeTextElement(QLatin1String("second"), QString::number(m_second));
|
||
|
}
|
||
|
|
||
|
if (m_children & Year) {
|
||
|
writer.writeTextElement(QLatin1String("year"), QString::number(m_year));
|
||
|
}
|
||
|
|
||
|
if (m_children & Month) {
|
||
|
writer.writeTextElement(QLatin1String("month"), QString::number(m_month));
|
||
|
}
|
||
|
|
||
|
if (m_children & Day) {
|
||
|
writer.writeTextElement(QLatin1String("day"), QString::number(m_day));
|
||
|
}
|
||
|
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomDateTime::setElementHour(int a)
|
||
|
{
|
||
|
m_children |= Hour;
|
||
|
m_hour = a;
|
||
|
}
|
||
|
|
||
|
void DomDateTime::setElementMinute(int a)
|
||
|
{
|
||
|
m_children |= Minute;
|
||
|
m_minute = a;
|
||
|
}
|
||
|
|
||
|
void DomDateTime::setElementSecond(int a)
|
||
|
{
|
||
|
m_children |= Second;
|
||
|
m_second = a;
|
||
|
}
|
||
|
|
||
|
void DomDateTime::setElementYear(int a)
|
||
|
{
|
||
|
m_children |= Year;
|
||
|
m_year = a;
|
||
|
}
|
||
|
|
||
|
void DomDateTime::setElementMonth(int a)
|
||
|
{
|
||
|
m_children |= Month;
|
||
|
m_month = a;
|
||
|
}
|
||
|
|
||
|
void DomDateTime::setElementDay(int a)
|
||
|
{
|
||
|
m_children |= Day;
|
||
|
m_day = a;
|
||
|
}
|
||
|
|
||
|
void DomDateTime::clearElementHour()
|
||
|
{
|
||
|
m_children &= ~Hour;
|
||
|
}
|
||
|
|
||
|
void DomDateTime::clearElementMinute()
|
||
|
{
|
||
|
m_children &= ~Minute;
|
||
|
}
|
||
|
|
||
|
void DomDateTime::clearElementSecond()
|
||
|
{
|
||
|
m_children &= ~Second;
|
||
|
}
|
||
|
|
||
|
void DomDateTime::clearElementYear()
|
||
|
{
|
||
|
m_children &= ~Year;
|
||
|
}
|
||
|
|
||
|
void DomDateTime::clearElementMonth()
|
||
|
{
|
||
|
m_children &= ~Month;
|
||
|
}
|
||
|
|
||
|
void DomDateTime::clearElementDay()
|
||
|
{
|
||
|
m_children &= ~Day;
|
||
|
}
|
||
|
|
||
|
void DomStringList::clear(bool clear_all)
|
||
|
{
|
||
|
m_string.clear();
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomStringList::DomStringList()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomStringList::~DomStringList()
|
||
|
{
|
||
|
m_string.clear();
|
||
|
}
|
||
|
|
||
|
void DomStringList::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("string")) {
|
||
|
m_string.append(reader.readElementText());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomStringList::read(const QDomElement &node)
|
||
|
{
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("string")) {
|
||
|
m_string.append(e.text());
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomStringList::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("stringlist") : tagName.toLower());
|
||
|
|
||
|
for (int i = 0; i < m_string.size(); ++i) {
|
||
|
QString v = m_string[i];
|
||
|
writer.writeTextElement(QLatin1String("string"), v);
|
||
|
}
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomStringList::setElementString(const QStringList& a)
|
||
|
{
|
||
|
m_children |= String;
|
||
|
m_string = a;
|
||
|
}
|
||
|
|
||
|
void DomResourcePixmap::clear(bool clear_all)
|
||
|
{
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text = QLatin1String("");
|
||
|
m_has_attr_resource = false;
|
||
|
m_has_attr_alias = false;
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomResourcePixmap::DomResourcePixmap()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_has_attr_resource = false;
|
||
|
m_has_attr_alias = false;
|
||
|
m_text = QLatin1String("");
|
||
|
}
|
||
|
|
||
|
DomResourcePixmap::~DomResourcePixmap()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
void DomResourcePixmap::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
foreach (const QXmlStreamAttribute &attribute, reader.attributes()) {
|
||
|
QStringRef name = attribute.name();
|
||
|
if (name == QLatin1String("resource")) {
|
||
|
setAttributeResource(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
if (name == QLatin1String("alias")) {
|
||
|
setAttributeAlias(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected attribute ") + name.toString());
|
||
|
}
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomResourcePixmap::read(const QDomElement &node)
|
||
|
{
|
||
|
if (node.hasAttribute(QLatin1String("resource")))
|
||
|
setAttributeResource(node.attribute(QLatin1String("resource")));
|
||
|
if (node.hasAttribute(QLatin1String("alias")))
|
||
|
setAttributeAlias(node.attribute(QLatin1String("alias")));
|
||
|
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
}
|
||
|
m_text = QLatin1String("");
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomResourcePixmap::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("resourcepixmap") : tagName.toLower());
|
||
|
|
||
|
if (hasAttributeResource())
|
||
|
writer.writeAttribute(QLatin1String("resource"), attributeResource());
|
||
|
|
||
|
if (hasAttributeAlias())
|
||
|
writer.writeAttribute(QLatin1String("alias"), attributeAlias());
|
||
|
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomResourceIcon::clear(bool clear_all)
|
||
|
{
|
||
|
delete m_normalOff;
|
||
|
delete m_normalOn;
|
||
|
delete m_disabledOff;
|
||
|
delete m_disabledOn;
|
||
|
delete m_activeOff;
|
||
|
delete m_activeOn;
|
||
|
delete m_selectedOff;
|
||
|
delete m_selectedOn;
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text = QLatin1String("");
|
||
|
m_has_attr_resource = false;
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
m_normalOff = 0;
|
||
|
m_normalOn = 0;
|
||
|
m_disabledOff = 0;
|
||
|
m_disabledOn = 0;
|
||
|
m_activeOff = 0;
|
||
|
m_activeOn = 0;
|
||
|
m_selectedOff = 0;
|
||
|
m_selectedOn = 0;
|
||
|
}
|
||
|
|
||
|
DomResourceIcon::DomResourceIcon()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_has_attr_resource = false;
|
||
|
m_text = QLatin1String("");
|
||
|
m_normalOff = 0;
|
||
|
m_normalOn = 0;
|
||
|
m_disabledOff = 0;
|
||
|
m_disabledOn = 0;
|
||
|
m_activeOff = 0;
|
||
|
m_activeOn = 0;
|
||
|
m_selectedOff = 0;
|
||
|
m_selectedOn = 0;
|
||
|
}
|
||
|
|
||
|
DomResourceIcon::~DomResourceIcon()
|
||
|
{
|
||
|
delete m_normalOff;
|
||
|
delete m_normalOn;
|
||
|
delete m_disabledOff;
|
||
|
delete m_disabledOn;
|
||
|
delete m_activeOff;
|
||
|
delete m_activeOn;
|
||
|
delete m_selectedOff;
|
||
|
delete m_selectedOn;
|
||
|
}
|
||
|
|
||
|
void DomResourceIcon::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
foreach (const QXmlStreamAttribute &attribute, reader.attributes()) {
|
||
|
QStringRef name = attribute.name();
|
||
|
if (name == QLatin1String("resource")) {
|
||
|
setAttributeResource(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected attribute ") + name.toString());
|
||
|
}
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("normaloff")) {
|
||
|
DomResourcePixmap *v = new DomResourcePixmap();
|
||
|
v->read(reader);
|
||
|
setElementNormalOff(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("normalon")) {
|
||
|
DomResourcePixmap *v = new DomResourcePixmap();
|
||
|
v->read(reader);
|
||
|
setElementNormalOn(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("disabledoff")) {
|
||
|
DomResourcePixmap *v = new DomResourcePixmap();
|
||
|
v->read(reader);
|
||
|
setElementDisabledOff(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("disabledon")) {
|
||
|
DomResourcePixmap *v = new DomResourcePixmap();
|
||
|
v->read(reader);
|
||
|
setElementDisabledOn(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("activeoff")) {
|
||
|
DomResourcePixmap *v = new DomResourcePixmap();
|
||
|
v->read(reader);
|
||
|
setElementActiveOff(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("activeon")) {
|
||
|
DomResourcePixmap *v = new DomResourcePixmap();
|
||
|
v->read(reader);
|
||
|
setElementActiveOn(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("selectedoff")) {
|
||
|
DomResourcePixmap *v = new DomResourcePixmap();
|
||
|
v->read(reader);
|
||
|
setElementSelectedOff(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("selectedon")) {
|
||
|
DomResourcePixmap *v = new DomResourcePixmap();
|
||
|
v->read(reader);
|
||
|
setElementSelectedOn(v);
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomResourceIcon::read(const QDomElement &node)
|
||
|
{
|
||
|
if (node.hasAttribute(QLatin1String("resource")))
|
||
|
setAttributeResource(node.attribute(QLatin1String("resource")));
|
||
|
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("normaloff")) {
|
||
|
DomResourcePixmap *v = new DomResourcePixmap();
|
||
|
v->read(e);
|
||
|
setElementNormalOff(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("normalon")) {
|
||
|
DomResourcePixmap *v = new DomResourcePixmap();
|
||
|
v->read(e);
|
||
|
setElementNormalOn(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("disabledoff")) {
|
||
|
DomResourcePixmap *v = new DomResourcePixmap();
|
||
|
v->read(e);
|
||
|
setElementDisabledOff(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("disabledon")) {
|
||
|
DomResourcePixmap *v = new DomResourcePixmap();
|
||
|
v->read(e);
|
||
|
setElementDisabledOn(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("activeoff")) {
|
||
|
DomResourcePixmap *v = new DomResourcePixmap();
|
||
|
v->read(e);
|
||
|
setElementActiveOff(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("activeon")) {
|
||
|
DomResourcePixmap *v = new DomResourcePixmap();
|
||
|
v->read(e);
|
||
|
setElementActiveOn(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("selectedoff")) {
|
||
|
DomResourcePixmap *v = new DomResourcePixmap();
|
||
|
v->read(e);
|
||
|
setElementSelectedOff(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("selectedon")) {
|
||
|
DomResourcePixmap *v = new DomResourcePixmap();
|
||
|
v->read(e);
|
||
|
setElementSelectedOn(v);
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text = QLatin1String("");
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomResourceIcon::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("resourceicon") : tagName.toLower());
|
||
|
|
||
|
if (hasAttributeResource())
|
||
|
writer.writeAttribute(QLatin1String("resource"), attributeResource());
|
||
|
|
||
|
if (m_children & NormalOff) {
|
||
|
m_normalOff->write(writer, QLatin1String("normaloff"));
|
||
|
}
|
||
|
|
||
|
if (m_children & NormalOn) {
|
||
|
m_normalOn->write(writer, QLatin1String("normalon"));
|
||
|
}
|
||
|
|
||
|
if (m_children & DisabledOff) {
|
||
|
m_disabledOff->write(writer, QLatin1String("disabledoff"));
|
||
|
}
|
||
|
|
||
|
if (m_children & DisabledOn) {
|
||
|
m_disabledOn->write(writer, QLatin1String("disabledon"));
|
||
|
}
|
||
|
|
||
|
if (m_children & ActiveOff) {
|
||
|
m_activeOff->write(writer, QLatin1String("activeoff"));
|
||
|
}
|
||
|
|
||
|
if (m_children & ActiveOn) {
|
||
|
m_activeOn->write(writer, QLatin1String("activeon"));
|
||
|
}
|
||
|
|
||
|
if (m_children & SelectedOff) {
|
||
|
m_selectedOff->write(writer, QLatin1String("selectedoff"));
|
||
|
}
|
||
|
|
||
|
if (m_children & SelectedOn) {
|
||
|
m_selectedOn->write(writer, QLatin1String("selectedon"));
|
||
|
}
|
||
|
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
DomResourcePixmap* DomResourceIcon::takeElementNormalOff()
|
||
|
{
|
||
|
DomResourcePixmap* a = m_normalOff;
|
||
|
m_normalOff = 0;
|
||
|
m_children ^= NormalOff;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomResourceIcon::setElementNormalOff(DomResourcePixmap* a)
|
||
|
{
|
||
|
delete m_normalOff;
|
||
|
m_children |= NormalOff;
|
||
|
m_normalOff = a;
|
||
|
}
|
||
|
|
||
|
DomResourcePixmap* DomResourceIcon::takeElementNormalOn()
|
||
|
{
|
||
|
DomResourcePixmap* a = m_normalOn;
|
||
|
m_normalOn = 0;
|
||
|
m_children ^= NormalOn;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomResourceIcon::setElementNormalOn(DomResourcePixmap* a)
|
||
|
{
|
||
|
delete m_normalOn;
|
||
|
m_children |= NormalOn;
|
||
|
m_normalOn = a;
|
||
|
}
|
||
|
|
||
|
DomResourcePixmap* DomResourceIcon::takeElementDisabledOff()
|
||
|
{
|
||
|
DomResourcePixmap* a = m_disabledOff;
|
||
|
m_disabledOff = 0;
|
||
|
m_children ^= DisabledOff;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomResourceIcon::setElementDisabledOff(DomResourcePixmap* a)
|
||
|
{
|
||
|
delete m_disabledOff;
|
||
|
m_children |= DisabledOff;
|
||
|
m_disabledOff = a;
|
||
|
}
|
||
|
|
||
|
DomResourcePixmap* DomResourceIcon::takeElementDisabledOn()
|
||
|
{
|
||
|
DomResourcePixmap* a = m_disabledOn;
|
||
|
m_disabledOn = 0;
|
||
|
m_children ^= DisabledOn;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomResourceIcon::setElementDisabledOn(DomResourcePixmap* a)
|
||
|
{
|
||
|
delete m_disabledOn;
|
||
|
m_children |= DisabledOn;
|
||
|
m_disabledOn = a;
|
||
|
}
|
||
|
|
||
|
DomResourcePixmap* DomResourceIcon::takeElementActiveOff()
|
||
|
{
|
||
|
DomResourcePixmap* a = m_activeOff;
|
||
|
m_activeOff = 0;
|
||
|
m_children ^= ActiveOff;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomResourceIcon::setElementActiveOff(DomResourcePixmap* a)
|
||
|
{
|
||
|
delete m_activeOff;
|
||
|
m_children |= ActiveOff;
|
||
|
m_activeOff = a;
|
||
|
}
|
||
|
|
||
|
DomResourcePixmap* DomResourceIcon::takeElementActiveOn()
|
||
|
{
|
||
|
DomResourcePixmap* a = m_activeOn;
|
||
|
m_activeOn = 0;
|
||
|
m_children ^= ActiveOn;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomResourceIcon::setElementActiveOn(DomResourcePixmap* a)
|
||
|
{
|
||
|
delete m_activeOn;
|
||
|
m_children |= ActiveOn;
|
||
|
m_activeOn = a;
|
||
|
}
|
||
|
|
||
|
DomResourcePixmap* DomResourceIcon::takeElementSelectedOff()
|
||
|
{
|
||
|
DomResourcePixmap* a = m_selectedOff;
|
||
|
m_selectedOff = 0;
|
||
|
m_children ^= SelectedOff;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomResourceIcon::setElementSelectedOff(DomResourcePixmap* a)
|
||
|
{
|
||
|
delete m_selectedOff;
|
||
|
m_children |= SelectedOff;
|
||
|
m_selectedOff = a;
|
||
|
}
|
||
|
|
||
|
DomResourcePixmap* DomResourceIcon::takeElementSelectedOn()
|
||
|
{
|
||
|
DomResourcePixmap* a = m_selectedOn;
|
||
|
m_selectedOn = 0;
|
||
|
m_children ^= SelectedOn;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomResourceIcon::setElementSelectedOn(DomResourcePixmap* a)
|
||
|
{
|
||
|
delete m_selectedOn;
|
||
|
m_children |= SelectedOn;
|
||
|
m_selectedOn = a;
|
||
|
}
|
||
|
|
||
|
void DomResourceIcon::clearElementNormalOff()
|
||
|
{
|
||
|
delete m_normalOff;
|
||
|
m_normalOff = 0;
|
||
|
m_children &= ~NormalOff;
|
||
|
}
|
||
|
|
||
|
void DomResourceIcon::clearElementNormalOn()
|
||
|
{
|
||
|
delete m_normalOn;
|
||
|
m_normalOn = 0;
|
||
|
m_children &= ~NormalOn;
|
||
|
}
|
||
|
|
||
|
void DomResourceIcon::clearElementDisabledOff()
|
||
|
{
|
||
|
delete m_disabledOff;
|
||
|
m_disabledOff = 0;
|
||
|
m_children &= ~DisabledOff;
|
||
|
}
|
||
|
|
||
|
void DomResourceIcon::clearElementDisabledOn()
|
||
|
{
|
||
|
delete m_disabledOn;
|
||
|
m_disabledOn = 0;
|
||
|
m_children &= ~DisabledOn;
|
||
|
}
|
||
|
|
||
|
void DomResourceIcon::clearElementActiveOff()
|
||
|
{
|
||
|
delete m_activeOff;
|
||
|
m_activeOff = 0;
|
||
|
m_children &= ~ActiveOff;
|
||
|
}
|
||
|
|
||
|
void DomResourceIcon::clearElementActiveOn()
|
||
|
{
|
||
|
delete m_activeOn;
|
||
|
m_activeOn = 0;
|
||
|
m_children &= ~ActiveOn;
|
||
|
}
|
||
|
|
||
|
void DomResourceIcon::clearElementSelectedOff()
|
||
|
{
|
||
|
delete m_selectedOff;
|
||
|
m_selectedOff = 0;
|
||
|
m_children &= ~SelectedOff;
|
||
|
}
|
||
|
|
||
|
void DomResourceIcon::clearElementSelectedOn()
|
||
|
{
|
||
|
delete m_selectedOn;
|
||
|
m_selectedOn = 0;
|
||
|
m_children &= ~SelectedOn;
|
||
|
}
|
||
|
|
||
|
void DomString::clear(bool clear_all)
|
||
|
{
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text = QLatin1String("");
|
||
|
m_has_attr_notr = false;
|
||
|
m_has_attr_comment = false;
|
||
|
m_has_attr_extraComment = false;
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomString::DomString()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_has_attr_notr = false;
|
||
|
m_has_attr_comment = false;
|
||
|
m_has_attr_extraComment = false;
|
||
|
m_text = QLatin1String("");
|
||
|
}
|
||
|
|
||
|
DomString::~DomString()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
void DomString::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
foreach (const QXmlStreamAttribute &attribute, reader.attributes()) {
|
||
|
QStringRef name = attribute.name();
|
||
|
if (name == QLatin1String("notr")) {
|
||
|
setAttributeNotr(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
if (name == QLatin1String("comment")) {
|
||
|
setAttributeComment(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
if (name == QLatin1String("extracomment")) {
|
||
|
setAttributeExtraComment(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected attribute ") + name.toString());
|
||
|
}
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomString::read(const QDomElement &node)
|
||
|
{
|
||
|
if (node.hasAttribute(QLatin1String("notr")))
|
||
|
setAttributeNotr(node.attribute(QLatin1String("notr")));
|
||
|
if (node.hasAttribute(QLatin1String("comment")))
|
||
|
setAttributeComment(node.attribute(QLatin1String("comment")));
|
||
|
if (node.hasAttribute(QLatin1String("extracomment")))
|
||
|
setAttributeExtraComment(node.attribute(QLatin1String("extracomment")));
|
||
|
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
}
|
||
|
m_text = QLatin1String("");
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomString::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("string") : tagName.toLower());
|
||
|
|
||
|
if (hasAttributeNotr())
|
||
|
writer.writeAttribute(QLatin1String("notr"), attributeNotr());
|
||
|
|
||
|
if (hasAttributeComment())
|
||
|
writer.writeAttribute(QLatin1String("comment"), attributeComment());
|
||
|
|
||
|
if (hasAttributeExtraComment())
|
||
|
writer.writeAttribute(QLatin1String("extracomment"), attributeExtraComment());
|
||
|
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomPointF::clear(bool clear_all)
|
||
|
{
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
m_x = 0;
|
||
|
m_y = 0;
|
||
|
}
|
||
|
|
||
|
DomPointF::DomPointF()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_x = 0;
|
||
|
m_y = 0;
|
||
|
}
|
||
|
|
||
|
DomPointF::~DomPointF()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
void DomPointF::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QString(QLatin1Char('x'))) {
|
||
|
setElementX(reader.readElementText().toDouble());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QString(QLatin1Char('y'))) {
|
||
|
setElementY(reader.readElementText().toDouble());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomPointF::read(const QDomElement &node)
|
||
|
{
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QString(QLatin1Char('x'))) {
|
||
|
setElementX(e.text().toDouble());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QString(QLatin1Char('y'))) {
|
||
|
setElementY(e.text().toDouble());
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomPointF::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("pointf") : tagName.toLower());
|
||
|
|
||
|
if (m_children & X) {
|
||
|
writer.writeTextElement(QString(QLatin1Char('x')), QString::number(m_x, 'f', 15));
|
||
|
}
|
||
|
|
||
|
if (m_children & Y) {
|
||
|
writer.writeTextElement(QString(QLatin1Char('y')), QString::number(m_y, 'f', 15));
|
||
|
}
|
||
|
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomPointF::setElementX(double a)
|
||
|
{
|
||
|
m_children |= X;
|
||
|
m_x = a;
|
||
|
}
|
||
|
|
||
|
void DomPointF::setElementY(double a)
|
||
|
{
|
||
|
m_children |= Y;
|
||
|
m_y = a;
|
||
|
}
|
||
|
|
||
|
void DomPointF::clearElementX()
|
||
|
{
|
||
|
m_children &= ~X;
|
||
|
}
|
||
|
|
||
|
void DomPointF::clearElementY()
|
||
|
{
|
||
|
m_children &= ~Y;
|
||
|
}
|
||
|
|
||
|
void DomRectF::clear(bool clear_all)
|
||
|
{
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
m_x = 0;
|
||
|
m_y = 0;
|
||
|
m_width = 0;
|
||
|
m_height = 0;
|
||
|
}
|
||
|
|
||
|
DomRectF::DomRectF()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_x = 0;
|
||
|
m_y = 0;
|
||
|
m_width = 0;
|
||
|
m_height = 0;
|
||
|
}
|
||
|
|
||
|
DomRectF::~DomRectF()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
void DomRectF::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QString(QLatin1Char('x'))) {
|
||
|
setElementX(reader.readElementText().toDouble());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QString(QLatin1Char('y'))) {
|
||
|
setElementY(reader.readElementText().toDouble());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("width")) {
|
||
|
setElementWidth(reader.readElementText().toDouble());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("height")) {
|
||
|
setElementHeight(reader.readElementText().toDouble());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomRectF::read(const QDomElement &node)
|
||
|
{
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QString(QLatin1Char('x'))) {
|
||
|
setElementX(e.text().toDouble());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QString(QLatin1Char('y'))) {
|
||
|
setElementY(e.text().toDouble());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("width")) {
|
||
|
setElementWidth(e.text().toDouble());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("height")) {
|
||
|
setElementHeight(e.text().toDouble());
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomRectF::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("rectf") : tagName.toLower());
|
||
|
|
||
|
if (m_children & X) {
|
||
|
writer.writeTextElement(QString(QLatin1Char('x')), QString::number(m_x, 'f', 15));
|
||
|
}
|
||
|
|
||
|
if (m_children & Y) {
|
||
|
writer.writeTextElement(QString(QLatin1Char('y')), QString::number(m_y, 'f', 15));
|
||
|
}
|
||
|
|
||
|
if (m_children & Width) {
|
||
|
writer.writeTextElement(QLatin1String("width"), QString::number(m_width, 'f', 15));
|
||
|
}
|
||
|
|
||
|
if (m_children & Height) {
|
||
|
writer.writeTextElement(QLatin1String("height"), QString::number(m_height, 'f', 15));
|
||
|
}
|
||
|
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomRectF::setElementX(double a)
|
||
|
{
|
||
|
m_children |= X;
|
||
|
m_x = a;
|
||
|
}
|
||
|
|
||
|
void DomRectF::setElementY(double a)
|
||
|
{
|
||
|
m_children |= Y;
|
||
|
m_y = a;
|
||
|
}
|
||
|
|
||
|
void DomRectF::setElementWidth(double a)
|
||
|
{
|
||
|
m_children |= Width;
|
||
|
m_width = a;
|
||
|
}
|
||
|
|
||
|
void DomRectF::setElementHeight(double a)
|
||
|
{
|
||
|
m_children |= Height;
|
||
|
m_height = a;
|
||
|
}
|
||
|
|
||
|
void DomRectF::clearElementX()
|
||
|
{
|
||
|
m_children &= ~X;
|
||
|
}
|
||
|
|
||
|
void DomRectF::clearElementY()
|
||
|
{
|
||
|
m_children &= ~Y;
|
||
|
}
|
||
|
|
||
|
void DomRectF::clearElementWidth()
|
||
|
{
|
||
|
m_children &= ~Width;
|
||
|
}
|
||
|
|
||
|
void DomRectF::clearElementHeight()
|
||
|
{
|
||
|
m_children &= ~Height;
|
||
|
}
|
||
|
|
||
|
void DomSizeF::clear(bool clear_all)
|
||
|
{
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
m_width = 0;
|
||
|
m_height = 0;
|
||
|
}
|
||
|
|
||
|
DomSizeF::DomSizeF()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_width = 0;
|
||
|
m_height = 0;
|
||
|
}
|
||
|
|
||
|
DomSizeF::~DomSizeF()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
void DomSizeF::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("width")) {
|
||
|
setElementWidth(reader.readElementText().toDouble());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("height")) {
|
||
|
setElementHeight(reader.readElementText().toDouble());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomSizeF::read(const QDomElement &node)
|
||
|
{
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("width")) {
|
||
|
setElementWidth(e.text().toDouble());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("height")) {
|
||
|
setElementHeight(e.text().toDouble());
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomSizeF::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("sizef") : tagName.toLower());
|
||
|
|
||
|
if (m_children & Width) {
|
||
|
writer.writeTextElement(QLatin1String("width"), QString::number(m_width, 'f', 15));
|
||
|
}
|
||
|
|
||
|
if (m_children & Height) {
|
||
|
writer.writeTextElement(QLatin1String("height"), QString::number(m_height, 'f', 15));
|
||
|
}
|
||
|
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomSizeF::setElementWidth(double a)
|
||
|
{
|
||
|
m_children |= Width;
|
||
|
m_width = a;
|
||
|
}
|
||
|
|
||
|
void DomSizeF::setElementHeight(double a)
|
||
|
{
|
||
|
m_children |= Height;
|
||
|
m_height = a;
|
||
|
}
|
||
|
|
||
|
void DomSizeF::clearElementWidth()
|
||
|
{
|
||
|
m_children &= ~Width;
|
||
|
}
|
||
|
|
||
|
void DomSizeF::clearElementHeight()
|
||
|
{
|
||
|
m_children &= ~Height;
|
||
|
}
|
||
|
|
||
|
void DomChar::clear(bool clear_all)
|
||
|
{
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
m_unicode = 0;
|
||
|
}
|
||
|
|
||
|
DomChar::DomChar()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_unicode = 0;
|
||
|
}
|
||
|
|
||
|
DomChar::~DomChar()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
void DomChar::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("unicode")) {
|
||
|
setElementUnicode(reader.readElementText().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomChar::read(const QDomElement &node)
|
||
|
{
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("unicode")) {
|
||
|
setElementUnicode(e.text().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomChar::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("char") : tagName.toLower());
|
||
|
|
||
|
if (m_children & Unicode) {
|
||
|
writer.writeTextElement(QLatin1String("unicode"), QString::number(m_unicode));
|
||
|
}
|
||
|
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomChar::setElementUnicode(int a)
|
||
|
{
|
||
|
m_children |= Unicode;
|
||
|
m_unicode = a;
|
||
|
}
|
||
|
|
||
|
void DomChar::clearElementUnicode()
|
||
|
{
|
||
|
m_children &= ~Unicode;
|
||
|
}
|
||
|
|
||
|
void DomUrl::clear(bool clear_all)
|
||
|
{
|
||
|
delete m_string;
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
m_string = 0;
|
||
|
}
|
||
|
|
||
|
DomUrl::DomUrl()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_string = 0;
|
||
|
}
|
||
|
|
||
|
DomUrl::~DomUrl()
|
||
|
{
|
||
|
delete m_string;
|
||
|
}
|
||
|
|
||
|
void DomUrl::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("string")) {
|
||
|
DomString *v = new DomString();
|
||
|
v->read(reader);
|
||
|
setElementString(v);
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomUrl::read(const QDomElement &node)
|
||
|
{
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("string")) {
|
||
|
DomString *v = new DomString();
|
||
|
v->read(e);
|
||
|
setElementString(v);
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomUrl::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("url") : tagName.toLower());
|
||
|
|
||
|
if (m_children & String) {
|
||
|
m_string->write(writer, QLatin1String("string"));
|
||
|
}
|
||
|
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
DomString* DomUrl::takeElementString()
|
||
|
{
|
||
|
DomString* a = m_string;
|
||
|
m_string = 0;
|
||
|
m_children ^= String;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomUrl::setElementString(DomString* a)
|
||
|
{
|
||
|
delete m_string;
|
||
|
m_children |= String;
|
||
|
m_string = a;
|
||
|
}
|
||
|
|
||
|
void DomUrl::clearElementString()
|
||
|
{
|
||
|
delete m_string;
|
||
|
m_string = 0;
|
||
|
m_children &= ~String;
|
||
|
}
|
||
|
|
||
|
void DomProperty::clear(bool clear_all)
|
||
|
{
|
||
|
delete m_color;
|
||
|
delete m_font;
|
||
|
delete m_iconSet;
|
||
|
delete m_pixmap;
|
||
|
delete m_palette;
|
||
|
delete m_point;
|
||
|
delete m_rect;
|
||
|
delete m_locale;
|
||
|
delete m_sizePolicy;
|
||
|
delete m_size;
|
||
|
delete m_string;
|
||
|
delete m_stringList;
|
||
|
delete m_date;
|
||
|
delete m_time;
|
||
|
delete m_dateTime;
|
||
|
delete m_pointF;
|
||
|
delete m_rectF;
|
||
|
delete m_sizeF;
|
||
|
delete m_char;
|
||
|
delete m_url;
|
||
|
delete m_brush;
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
m_has_attr_name = false;
|
||
|
m_has_attr_stdset = false;
|
||
|
m_attr_stdset = 0;
|
||
|
}
|
||
|
|
||
|
m_kind = Unknown;
|
||
|
|
||
|
m_color = 0;
|
||
|
m_cursor = 0;
|
||
|
m_font = 0;
|
||
|
m_iconSet = 0;
|
||
|
m_pixmap = 0;
|
||
|
m_palette = 0;
|
||
|
m_point = 0;
|
||
|
m_rect = 0;
|
||
|
m_locale = 0;
|
||
|
m_sizePolicy = 0;
|
||
|
m_size = 0;
|
||
|
m_string = 0;
|
||
|
m_stringList = 0;
|
||
|
m_number = 0;
|
||
|
m_float = 0.0;
|
||
|
m_double = 0;
|
||
|
m_date = 0;
|
||
|
m_time = 0;
|
||
|
m_dateTime = 0;
|
||
|
m_pointF = 0;
|
||
|
m_rectF = 0;
|
||
|
m_sizeF = 0;
|
||
|
m_longLong = 0;
|
||
|
m_char = 0;
|
||
|
m_url = 0;
|
||
|
m_UInt = 0;
|
||
|
m_uLongLong = 0;
|
||
|
m_brush = 0;
|
||
|
}
|
||
|
|
||
|
DomProperty::DomProperty()
|
||
|
{
|
||
|
m_kind = Unknown;
|
||
|
|
||
|
m_has_attr_name = false;
|
||
|
m_has_attr_stdset = false;
|
||
|
m_attr_stdset = 0;
|
||
|
m_color = 0;
|
||
|
m_cursor = 0;
|
||
|
m_font = 0;
|
||
|
m_iconSet = 0;
|
||
|
m_pixmap = 0;
|
||
|
m_palette = 0;
|
||
|
m_point = 0;
|
||
|
m_rect = 0;
|
||
|
m_locale = 0;
|
||
|
m_sizePolicy = 0;
|
||
|
m_size = 0;
|
||
|
m_string = 0;
|
||
|
m_stringList = 0;
|
||
|
m_number = 0;
|
||
|
m_float = 0.0;
|
||
|
m_double = 0;
|
||
|
m_date = 0;
|
||
|
m_time = 0;
|
||
|
m_dateTime = 0;
|
||
|
m_pointF = 0;
|
||
|
m_rectF = 0;
|
||
|
m_sizeF = 0;
|
||
|
m_longLong = 0;
|
||
|
m_char = 0;
|
||
|
m_url = 0;
|
||
|
m_UInt = 0;
|
||
|
m_uLongLong = 0;
|
||
|
m_brush = 0;
|
||
|
}
|
||
|
|
||
|
DomProperty::~DomProperty()
|
||
|
{
|
||
|
delete m_color;
|
||
|
delete m_font;
|
||
|
delete m_iconSet;
|
||
|
delete m_pixmap;
|
||
|
delete m_palette;
|
||
|
delete m_point;
|
||
|
delete m_rect;
|
||
|
delete m_locale;
|
||
|
delete m_sizePolicy;
|
||
|
delete m_size;
|
||
|
delete m_string;
|
||
|
delete m_stringList;
|
||
|
delete m_date;
|
||
|
delete m_time;
|
||
|
delete m_dateTime;
|
||
|
delete m_pointF;
|
||
|
delete m_rectF;
|
||
|
delete m_sizeF;
|
||
|
delete m_char;
|
||
|
delete m_url;
|
||
|
delete m_brush;
|
||
|
}
|
||
|
|
||
|
void DomProperty::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
foreach (const QXmlStreamAttribute &attribute, reader.attributes()) {
|
||
|
QStringRef name = attribute.name();
|
||
|
if (name == QLatin1String("name")) {
|
||
|
setAttributeName(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
if (name == QLatin1String("stdset")) {
|
||
|
setAttributeStdset(attribute.value().toString().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected attribute ") + name.toString());
|
||
|
}
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("bool")) {
|
||
|
setElementBool(reader.readElementText());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("color")) {
|
||
|
DomColor *v = new DomColor();
|
||
|
v->read(reader);
|
||
|
setElementColor(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("cstring")) {
|
||
|
setElementCstring(reader.readElementText());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("cursor")) {
|
||
|
setElementCursor(reader.readElementText().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("cursorshape")) {
|
||
|
setElementCursorShape(reader.readElementText());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("enum")) {
|
||
|
setElementEnum(reader.readElementText());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("font")) {
|
||
|
DomFont *v = new DomFont();
|
||
|
v->read(reader);
|
||
|
setElementFont(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("iconset")) {
|
||
|
DomResourceIcon *v = new DomResourceIcon();
|
||
|
v->read(reader);
|
||
|
setElementIconSet(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("pixmap")) {
|
||
|
DomResourcePixmap *v = new DomResourcePixmap();
|
||
|
v->read(reader);
|
||
|
setElementPixmap(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("palette")) {
|
||
|
DomPalette *v = new DomPalette();
|
||
|
v->read(reader);
|
||
|
setElementPalette(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("point")) {
|
||
|
DomPoint *v = new DomPoint();
|
||
|
v->read(reader);
|
||
|
setElementPoint(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("rect")) {
|
||
|
DomRect *v = new DomRect();
|
||
|
v->read(reader);
|
||
|
setElementRect(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("set")) {
|
||
|
setElementSet(reader.readElementText());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("locale")) {
|
||
|
DomLocale *v = new DomLocale();
|
||
|
v->read(reader);
|
||
|
setElementLocale(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("sizepolicy")) {
|
||
|
DomSizePolicy *v = new DomSizePolicy();
|
||
|
v->read(reader);
|
||
|
setElementSizePolicy(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("size")) {
|
||
|
DomSize *v = new DomSize();
|
||
|
v->read(reader);
|
||
|
setElementSize(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("string")) {
|
||
|
DomString *v = new DomString();
|
||
|
v->read(reader);
|
||
|
setElementString(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("stringlist")) {
|
||
|
DomStringList *v = new DomStringList();
|
||
|
v->read(reader);
|
||
|
setElementStringList(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("number")) {
|
||
|
setElementNumber(reader.readElementText().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("float")) {
|
||
|
setElementFloat(reader.readElementText().toFloat());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("double")) {
|
||
|
setElementDouble(reader.readElementText().toDouble());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("date")) {
|
||
|
DomDate *v = new DomDate();
|
||
|
v->read(reader);
|
||
|
setElementDate(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("time")) {
|
||
|
DomTime *v = new DomTime();
|
||
|
v->read(reader);
|
||
|
setElementTime(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("datetime")) {
|
||
|
DomDateTime *v = new DomDateTime();
|
||
|
v->read(reader);
|
||
|
setElementDateTime(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("pointf")) {
|
||
|
DomPointF *v = new DomPointF();
|
||
|
v->read(reader);
|
||
|
setElementPointF(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("rectf")) {
|
||
|
DomRectF *v = new DomRectF();
|
||
|
v->read(reader);
|
||
|
setElementRectF(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("sizef")) {
|
||
|
DomSizeF *v = new DomSizeF();
|
||
|
v->read(reader);
|
||
|
setElementSizeF(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("longlong")) {
|
||
|
setElementLongLong(reader.readElementText().toLongLong());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("char")) {
|
||
|
DomChar *v = new DomChar();
|
||
|
v->read(reader);
|
||
|
setElementChar(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("url")) {
|
||
|
DomUrl *v = new DomUrl();
|
||
|
v->read(reader);
|
||
|
setElementUrl(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("uint")) {
|
||
|
setElementUInt(reader.readElementText().toUInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("ulonglong")) {
|
||
|
setElementULongLong(reader.readElementText().toULongLong());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("brush")) {
|
||
|
DomBrush *v = new DomBrush();
|
||
|
v->read(reader);
|
||
|
setElementBrush(v);
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomProperty::read(const QDomElement &node)
|
||
|
{
|
||
|
if (node.hasAttribute(QLatin1String("name")))
|
||
|
setAttributeName(node.attribute(QLatin1String("name")));
|
||
|
if (node.hasAttribute(QLatin1String("stdset")))
|
||
|
setAttributeStdset(node.attribute(QLatin1String("stdset")).toInt());
|
||
|
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("bool")) {
|
||
|
setElementBool(e.text());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("color")) {
|
||
|
DomColor *v = new DomColor();
|
||
|
v->read(e);
|
||
|
setElementColor(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("cstring")) {
|
||
|
setElementCstring(e.text());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("cursor")) {
|
||
|
setElementCursor(e.text().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("cursorshape")) {
|
||
|
setElementCursorShape(e.text());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("enum")) {
|
||
|
setElementEnum(e.text());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("font")) {
|
||
|
DomFont *v = new DomFont();
|
||
|
v->read(e);
|
||
|
setElementFont(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("iconset")) {
|
||
|
DomResourceIcon *v = new DomResourceIcon();
|
||
|
v->read(e);
|
||
|
setElementIconSet(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("pixmap")) {
|
||
|
DomResourcePixmap *v = new DomResourcePixmap();
|
||
|
v->read(e);
|
||
|
setElementPixmap(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("palette")) {
|
||
|
DomPalette *v = new DomPalette();
|
||
|
v->read(e);
|
||
|
setElementPalette(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("point")) {
|
||
|
DomPoint *v = new DomPoint();
|
||
|
v->read(e);
|
||
|
setElementPoint(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("rect")) {
|
||
|
DomRect *v = new DomRect();
|
||
|
v->read(e);
|
||
|
setElementRect(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("set")) {
|
||
|
setElementSet(e.text());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("locale")) {
|
||
|
DomLocale *v = new DomLocale();
|
||
|
v->read(e);
|
||
|
setElementLocale(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("sizepolicy")) {
|
||
|
DomSizePolicy *v = new DomSizePolicy();
|
||
|
v->read(e);
|
||
|
setElementSizePolicy(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("size")) {
|
||
|
DomSize *v = new DomSize();
|
||
|
v->read(e);
|
||
|
setElementSize(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("string")) {
|
||
|
DomString *v = new DomString();
|
||
|
v->read(e);
|
||
|
setElementString(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("stringlist")) {
|
||
|
DomStringList *v = new DomStringList();
|
||
|
v->read(e);
|
||
|
setElementStringList(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("number")) {
|
||
|
setElementNumber(e.text().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("float")) {
|
||
|
setElementFloat(e.text().toFloat());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("double")) {
|
||
|
setElementDouble(e.text().toDouble());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("date")) {
|
||
|
DomDate *v = new DomDate();
|
||
|
v->read(e);
|
||
|
setElementDate(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("time")) {
|
||
|
DomTime *v = new DomTime();
|
||
|
v->read(e);
|
||
|
setElementTime(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("datetime")) {
|
||
|
DomDateTime *v = new DomDateTime();
|
||
|
v->read(e);
|
||
|
setElementDateTime(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("pointf")) {
|
||
|
DomPointF *v = new DomPointF();
|
||
|
v->read(e);
|
||
|
setElementPointF(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("rectf")) {
|
||
|
DomRectF *v = new DomRectF();
|
||
|
v->read(e);
|
||
|
setElementRectF(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("sizef")) {
|
||
|
DomSizeF *v = new DomSizeF();
|
||
|
v->read(e);
|
||
|
setElementSizeF(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("longlong")) {
|
||
|
setElementLongLong(e.text().toLongLong());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("char")) {
|
||
|
DomChar *v = new DomChar();
|
||
|
v->read(e);
|
||
|
setElementChar(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("url")) {
|
||
|
DomUrl *v = new DomUrl();
|
||
|
v->read(e);
|
||
|
setElementUrl(v);
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("uint")) {
|
||
|
setElementUInt(e.text().toUInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("ulonglong")) {
|
||
|
setElementULongLong(e.text().toULongLong());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("brush")) {
|
||
|
DomBrush *v = new DomBrush();
|
||
|
v->read(e);
|
||
|
setElementBrush(v);
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomProperty::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("property") : tagName.toLower());
|
||
|
|
||
|
if (hasAttributeName())
|
||
|
writer.writeAttribute(QLatin1String("name"), attributeName());
|
||
|
|
||
|
if (hasAttributeStdset())
|
||
|
writer.writeAttribute(QLatin1String("stdset"), QString::number(attributeStdset()));
|
||
|
|
||
|
switch (kind()) {
|
||
|
case Bool: {
|
||
|
writer.writeTextElement(QLatin1String("bool"), elementBool());
|
||
|
break;
|
||
|
}
|
||
|
case Color: {
|
||
|
DomColor* v = elementColor();
|
||
|
if (v != 0) {
|
||
|
v->write(writer, QLatin1String("color"));
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
case Cstring: {
|
||
|
writer.writeTextElement(QLatin1String("cstring"), elementCstring());
|
||
|
break;
|
||
|
}
|
||
|
case Cursor: {
|
||
|
writer.writeTextElement(QLatin1String("cursor"), QString::number(elementCursor()));
|
||
|
break;
|
||
|
}
|
||
|
case CursorShape: {
|
||
|
writer.writeTextElement(QLatin1String("cursorShape"), elementCursorShape());
|
||
|
break;
|
||
|
}
|
||
|
case Enum: {
|
||
|
writer.writeTextElement(QLatin1String("enum"), elementEnum());
|
||
|
break;
|
||
|
}
|
||
|
case Font: {
|
||
|
DomFont* v = elementFont();
|
||
|
if (v != 0) {
|
||
|
v->write(writer, QLatin1String("font"));
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
case IconSet: {
|
||
|
DomResourceIcon* v = elementIconSet();
|
||
|
if (v != 0) {
|
||
|
v->write(writer, QLatin1String("iconset"));
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
case Pixmap: {
|
||
|
DomResourcePixmap* v = elementPixmap();
|
||
|
if (v != 0) {
|
||
|
v->write(writer, QLatin1String("pixmap"));
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
case Palette: {
|
||
|
DomPalette* v = elementPalette();
|
||
|
if (v != 0) {
|
||
|
v->write(writer, QLatin1String("palette"));
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
case Point: {
|
||
|
DomPoint* v = elementPoint();
|
||
|
if (v != 0) {
|
||
|
v->write(writer, QLatin1String("point"));
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
case Rect: {
|
||
|
DomRect* v = elementRect();
|
||
|
if (v != 0) {
|
||
|
v->write(writer, QLatin1String("rect"));
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
case Set: {
|
||
|
writer.writeTextElement(QLatin1String("set"), elementSet());
|
||
|
break;
|
||
|
}
|
||
|
case Locale: {
|
||
|
DomLocale* v = elementLocale();
|
||
|
if (v != 0) {
|
||
|
v->write(writer, QLatin1String("locale"));
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
case SizePolicy: {
|
||
|
DomSizePolicy* v = elementSizePolicy();
|
||
|
if (v != 0) {
|
||
|
v->write(writer, QLatin1String("sizepolicy"));
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
case Size: {
|
||
|
DomSize* v = elementSize();
|
||
|
if (v != 0) {
|
||
|
v->write(writer, QLatin1String("size"));
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
case String: {
|
||
|
DomString* v = elementString();
|
||
|
if (v != 0) {
|
||
|
v->write(writer, QLatin1String("string"));
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
case StringList: {
|
||
|
DomStringList* v = elementStringList();
|
||
|
if (v != 0) {
|
||
|
v->write(writer, QLatin1String("stringlist"));
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
case Number: {
|
||
|
writer.writeTextElement(QLatin1String("number"), QString::number(elementNumber()));
|
||
|
break;
|
||
|
}
|
||
|
case Float: {
|
||
|
writer.writeTextElement(QLatin1String("float"), QString::number(elementFloat(), 'f', 8));
|
||
|
break;
|
||
|
}
|
||
|
case Double: {
|
||
|
writer.writeTextElement(QLatin1String("double"), QString::number(elementDouble(), 'f', 15));
|
||
|
break;
|
||
|
}
|
||
|
case Date: {
|
||
|
DomDate* v = elementDate();
|
||
|
if (v != 0) {
|
||
|
v->write(writer, QLatin1String("date"));
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
case Time: {
|
||
|
DomTime* v = elementTime();
|
||
|
if (v != 0) {
|
||
|
v->write(writer, QLatin1String("time"));
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
case DateTime: {
|
||
|
DomDateTime* v = elementDateTime();
|
||
|
if (v != 0) {
|
||
|
v->write(writer, QLatin1String("datetime"));
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
case PointF: {
|
||
|
DomPointF* v = elementPointF();
|
||
|
if (v != 0) {
|
||
|
v->write(writer, QLatin1String("pointf"));
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
case RectF: {
|
||
|
DomRectF* v = elementRectF();
|
||
|
if (v != 0) {
|
||
|
v->write(writer, QLatin1String("rectf"));
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
case SizeF: {
|
||
|
DomSizeF* v = elementSizeF();
|
||
|
if (v != 0) {
|
||
|
v->write(writer, QLatin1String("sizef"));
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
case LongLong: {
|
||
|
writer.writeTextElement(QLatin1String("longLong"), QString::number(elementLongLong()));
|
||
|
break;
|
||
|
}
|
||
|
case Char: {
|
||
|
DomChar* v = elementChar();
|
||
|
if (v != 0) {
|
||
|
v->write(writer, QLatin1String("char"));
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
case Url: {
|
||
|
DomUrl* v = elementUrl();
|
||
|
if (v != 0) {
|
||
|
v->write(writer, QLatin1String("url"));
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
case UInt: {
|
||
|
writer.writeTextElement(QLatin1String("UInt"), QString::number(elementUInt()));
|
||
|
break;
|
||
|
}
|
||
|
case ULongLong: {
|
||
|
writer.writeTextElement(QLatin1String("uLongLong"), QString::number(elementULongLong()));
|
||
|
break;
|
||
|
}
|
||
|
case Brush: {
|
||
|
DomBrush* v = elementBrush();
|
||
|
if (v != 0) {
|
||
|
v->write(writer, QLatin1String("brush"));
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
default:
|
||
|
break;
|
||
|
}
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomProperty::setElementBool(const QString& a)
|
||
|
{
|
||
|
clear(false);
|
||
|
m_kind = Bool;
|
||
|
m_bool = a;
|
||
|
}
|
||
|
|
||
|
DomColor* DomProperty::takeElementColor()
|
||
|
{
|
||
|
DomColor* a = m_color;
|
||
|
m_color = 0;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomProperty::setElementColor(DomColor* a)
|
||
|
{
|
||
|
clear(false);
|
||
|
m_kind = Color;
|
||
|
m_color = a;
|
||
|
}
|
||
|
|
||
|
void DomProperty::setElementCstring(const QString& a)
|
||
|
{
|
||
|
clear(false);
|
||
|
m_kind = Cstring;
|
||
|
m_cstring = a;
|
||
|
}
|
||
|
|
||
|
void DomProperty::setElementCursor(int a)
|
||
|
{
|
||
|
clear(false);
|
||
|
m_kind = Cursor;
|
||
|
m_cursor = a;
|
||
|
}
|
||
|
|
||
|
void DomProperty::setElementCursorShape(const QString& a)
|
||
|
{
|
||
|
clear(false);
|
||
|
m_kind = CursorShape;
|
||
|
m_cursorShape = a;
|
||
|
}
|
||
|
|
||
|
void DomProperty::setElementEnum(const QString& a)
|
||
|
{
|
||
|
clear(false);
|
||
|
m_kind = Enum;
|
||
|
m_enum = a;
|
||
|
}
|
||
|
|
||
|
DomFont* DomProperty::takeElementFont()
|
||
|
{
|
||
|
DomFont* a = m_font;
|
||
|
m_font = 0;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomProperty::setElementFont(DomFont* a)
|
||
|
{
|
||
|
clear(false);
|
||
|
m_kind = Font;
|
||
|
m_font = a;
|
||
|
}
|
||
|
|
||
|
DomResourceIcon* DomProperty::takeElementIconSet()
|
||
|
{
|
||
|
DomResourceIcon* a = m_iconSet;
|
||
|
m_iconSet = 0;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomProperty::setElementIconSet(DomResourceIcon* a)
|
||
|
{
|
||
|
clear(false);
|
||
|
m_kind = IconSet;
|
||
|
m_iconSet = a;
|
||
|
}
|
||
|
|
||
|
DomResourcePixmap* DomProperty::takeElementPixmap()
|
||
|
{
|
||
|
DomResourcePixmap* a = m_pixmap;
|
||
|
m_pixmap = 0;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomProperty::setElementPixmap(DomResourcePixmap* a)
|
||
|
{
|
||
|
clear(false);
|
||
|
m_kind = Pixmap;
|
||
|
m_pixmap = a;
|
||
|
}
|
||
|
|
||
|
DomPalette* DomProperty::takeElementPalette()
|
||
|
{
|
||
|
DomPalette* a = m_palette;
|
||
|
m_palette = 0;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomProperty::setElementPalette(DomPalette* a)
|
||
|
{
|
||
|
clear(false);
|
||
|
m_kind = Palette;
|
||
|
m_palette = a;
|
||
|
}
|
||
|
|
||
|
DomPoint* DomProperty::takeElementPoint()
|
||
|
{
|
||
|
DomPoint* a = m_point;
|
||
|
m_point = 0;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomProperty::setElementPoint(DomPoint* a)
|
||
|
{
|
||
|
clear(false);
|
||
|
m_kind = Point;
|
||
|
m_point = a;
|
||
|
}
|
||
|
|
||
|
DomRect* DomProperty::takeElementRect()
|
||
|
{
|
||
|
DomRect* a = m_rect;
|
||
|
m_rect = 0;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomProperty::setElementRect(DomRect* a)
|
||
|
{
|
||
|
clear(false);
|
||
|
m_kind = Rect;
|
||
|
m_rect = a;
|
||
|
}
|
||
|
|
||
|
void DomProperty::setElementSet(const QString& a)
|
||
|
{
|
||
|
clear(false);
|
||
|
m_kind = Set;
|
||
|
m_set = a;
|
||
|
}
|
||
|
|
||
|
DomLocale* DomProperty::takeElementLocale()
|
||
|
{
|
||
|
DomLocale* a = m_locale;
|
||
|
m_locale = 0;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomProperty::setElementLocale(DomLocale* a)
|
||
|
{
|
||
|
clear(false);
|
||
|
m_kind = Locale;
|
||
|
m_locale = a;
|
||
|
}
|
||
|
|
||
|
DomSizePolicy* DomProperty::takeElementSizePolicy()
|
||
|
{
|
||
|
DomSizePolicy* a = m_sizePolicy;
|
||
|
m_sizePolicy = 0;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomProperty::setElementSizePolicy(DomSizePolicy* a)
|
||
|
{
|
||
|
clear(false);
|
||
|
m_kind = SizePolicy;
|
||
|
m_sizePolicy = a;
|
||
|
}
|
||
|
|
||
|
DomSize* DomProperty::takeElementSize()
|
||
|
{
|
||
|
DomSize* a = m_size;
|
||
|
m_size = 0;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomProperty::setElementSize(DomSize* a)
|
||
|
{
|
||
|
clear(false);
|
||
|
m_kind = Size;
|
||
|
m_size = a;
|
||
|
}
|
||
|
|
||
|
DomString* DomProperty::takeElementString()
|
||
|
{
|
||
|
DomString* a = m_string;
|
||
|
m_string = 0;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomProperty::setElementString(DomString* a)
|
||
|
{
|
||
|
clear(false);
|
||
|
m_kind = String;
|
||
|
m_string = a;
|
||
|
}
|
||
|
|
||
|
DomStringList* DomProperty::takeElementStringList()
|
||
|
{
|
||
|
DomStringList* a = m_stringList;
|
||
|
m_stringList = 0;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomProperty::setElementStringList(DomStringList* a)
|
||
|
{
|
||
|
clear(false);
|
||
|
m_kind = StringList;
|
||
|
m_stringList = a;
|
||
|
}
|
||
|
|
||
|
void DomProperty::setElementNumber(int a)
|
||
|
{
|
||
|
clear(false);
|
||
|
m_kind = Number;
|
||
|
m_number = a;
|
||
|
}
|
||
|
|
||
|
void DomProperty::setElementFloat(float a)
|
||
|
{
|
||
|
clear(false);
|
||
|
m_kind = Float;
|
||
|
m_float = a;
|
||
|
}
|
||
|
|
||
|
void DomProperty::setElementDouble(double a)
|
||
|
{
|
||
|
clear(false);
|
||
|
m_kind = Double;
|
||
|
m_double = a;
|
||
|
}
|
||
|
|
||
|
DomDate* DomProperty::takeElementDate()
|
||
|
{
|
||
|
DomDate* a = m_date;
|
||
|
m_date = 0;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomProperty::setElementDate(DomDate* a)
|
||
|
{
|
||
|
clear(false);
|
||
|
m_kind = Date;
|
||
|
m_date = a;
|
||
|
}
|
||
|
|
||
|
DomTime* DomProperty::takeElementTime()
|
||
|
{
|
||
|
DomTime* a = m_time;
|
||
|
m_time = 0;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomProperty::setElementTime(DomTime* a)
|
||
|
{
|
||
|
clear(false);
|
||
|
m_kind = Time;
|
||
|
m_time = a;
|
||
|
}
|
||
|
|
||
|
DomDateTime* DomProperty::takeElementDateTime()
|
||
|
{
|
||
|
DomDateTime* a = m_dateTime;
|
||
|
m_dateTime = 0;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomProperty::setElementDateTime(DomDateTime* a)
|
||
|
{
|
||
|
clear(false);
|
||
|
m_kind = DateTime;
|
||
|
m_dateTime = a;
|
||
|
}
|
||
|
|
||
|
DomPointF* DomProperty::takeElementPointF()
|
||
|
{
|
||
|
DomPointF* a = m_pointF;
|
||
|
m_pointF = 0;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomProperty::setElementPointF(DomPointF* a)
|
||
|
{
|
||
|
clear(false);
|
||
|
m_kind = PointF;
|
||
|
m_pointF = a;
|
||
|
}
|
||
|
|
||
|
DomRectF* DomProperty::takeElementRectF()
|
||
|
{
|
||
|
DomRectF* a = m_rectF;
|
||
|
m_rectF = 0;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomProperty::setElementRectF(DomRectF* a)
|
||
|
{
|
||
|
clear(false);
|
||
|
m_kind = RectF;
|
||
|
m_rectF = a;
|
||
|
}
|
||
|
|
||
|
DomSizeF* DomProperty::takeElementSizeF()
|
||
|
{
|
||
|
DomSizeF* a = m_sizeF;
|
||
|
m_sizeF = 0;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomProperty::setElementSizeF(DomSizeF* a)
|
||
|
{
|
||
|
clear(false);
|
||
|
m_kind = SizeF;
|
||
|
m_sizeF = a;
|
||
|
}
|
||
|
|
||
|
void DomProperty::setElementLongLong(qlonglong a)
|
||
|
{
|
||
|
clear(false);
|
||
|
m_kind = LongLong;
|
||
|
m_longLong = a;
|
||
|
}
|
||
|
|
||
|
DomChar* DomProperty::takeElementChar()
|
||
|
{
|
||
|
DomChar* a = m_char;
|
||
|
m_char = 0;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomProperty::setElementChar(DomChar* a)
|
||
|
{
|
||
|
clear(false);
|
||
|
m_kind = Char;
|
||
|
m_char = a;
|
||
|
}
|
||
|
|
||
|
DomUrl* DomProperty::takeElementUrl()
|
||
|
{
|
||
|
DomUrl* a = m_url;
|
||
|
m_url = 0;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomProperty::setElementUrl(DomUrl* a)
|
||
|
{
|
||
|
clear(false);
|
||
|
m_kind = Url;
|
||
|
m_url = a;
|
||
|
}
|
||
|
|
||
|
void DomProperty::setElementUInt(uint a)
|
||
|
{
|
||
|
clear(false);
|
||
|
m_kind = UInt;
|
||
|
m_UInt = a;
|
||
|
}
|
||
|
|
||
|
void DomProperty::setElementULongLong(qulonglong a)
|
||
|
{
|
||
|
clear(false);
|
||
|
m_kind = ULongLong;
|
||
|
m_uLongLong = a;
|
||
|
}
|
||
|
|
||
|
DomBrush* DomProperty::takeElementBrush()
|
||
|
{
|
||
|
DomBrush* a = m_brush;
|
||
|
m_brush = 0;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomProperty::setElementBrush(DomBrush* a)
|
||
|
{
|
||
|
clear(false);
|
||
|
m_kind = Brush;
|
||
|
m_brush = a;
|
||
|
}
|
||
|
|
||
|
void DomConnections::clear(bool clear_all)
|
||
|
{
|
||
|
qDeleteAll(m_connection);
|
||
|
m_connection.clear();
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomConnections::DomConnections()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomConnections::~DomConnections()
|
||
|
{
|
||
|
qDeleteAll(m_connection);
|
||
|
m_connection.clear();
|
||
|
}
|
||
|
|
||
|
void DomConnections::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("connection")) {
|
||
|
DomConnection *v = new DomConnection();
|
||
|
v->read(reader);
|
||
|
m_connection.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomConnections::read(const QDomElement &node)
|
||
|
{
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("connection")) {
|
||
|
DomConnection *v = new DomConnection();
|
||
|
v->read(e);
|
||
|
m_connection.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomConnections::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("connections") : tagName.toLower());
|
||
|
|
||
|
for (int i = 0; i < m_connection.size(); ++i) {
|
||
|
DomConnection* v = m_connection[i];
|
||
|
v->write(writer, QLatin1String("connection"));
|
||
|
}
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomConnections::setElementConnection(const QList<DomConnection*>& a)
|
||
|
{
|
||
|
m_children |= Connection;
|
||
|
m_connection = a;
|
||
|
}
|
||
|
|
||
|
void DomConnection::clear(bool clear_all)
|
||
|
{
|
||
|
delete m_hints;
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
m_hints = 0;
|
||
|
}
|
||
|
|
||
|
DomConnection::DomConnection()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_hints = 0;
|
||
|
}
|
||
|
|
||
|
DomConnection::~DomConnection()
|
||
|
{
|
||
|
delete m_hints;
|
||
|
}
|
||
|
|
||
|
void DomConnection::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("sender")) {
|
||
|
setElementSender(reader.readElementText());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("signal")) {
|
||
|
setElementSignal(reader.readElementText());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("receiver")) {
|
||
|
setElementReceiver(reader.readElementText());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("slot")) {
|
||
|
setElementSlot(reader.readElementText());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("hints")) {
|
||
|
DomConnectionHints *v = new DomConnectionHints();
|
||
|
v->read(reader);
|
||
|
setElementHints(v);
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomConnection::read(const QDomElement &node)
|
||
|
{
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("sender")) {
|
||
|
setElementSender(e.text());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("signal")) {
|
||
|
setElementSignal(e.text());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("receiver")) {
|
||
|
setElementReceiver(e.text());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("slot")) {
|
||
|
setElementSlot(e.text());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("hints")) {
|
||
|
DomConnectionHints *v = new DomConnectionHints();
|
||
|
v->read(e);
|
||
|
setElementHints(v);
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomConnection::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("connection") : tagName.toLower());
|
||
|
|
||
|
if (m_children & Sender) {
|
||
|
writer.writeTextElement(QLatin1String("sender"), m_sender);
|
||
|
}
|
||
|
|
||
|
if (m_children & Signal) {
|
||
|
writer.writeTextElement(QLatin1String("signal"), m_signal);
|
||
|
}
|
||
|
|
||
|
if (m_children & Receiver) {
|
||
|
writer.writeTextElement(QLatin1String("receiver"), m_receiver);
|
||
|
}
|
||
|
|
||
|
if (m_children & Slot) {
|
||
|
writer.writeTextElement(QLatin1String("slot"), m_slot);
|
||
|
}
|
||
|
|
||
|
if (m_children & Hints) {
|
||
|
m_hints->write(writer, QLatin1String("hints"));
|
||
|
}
|
||
|
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomConnection::setElementSender(const QString& a)
|
||
|
{
|
||
|
m_children |= Sender;
|
||
|
m_sender = a;
|
||
|
}
|
||
|
|
||
|
void DomConnection::setElementSignal(const QString& a)
|
||
|
{
|
||
|
m_children |= Signal;
|
||
|
m_signal = a;
|
||
|
}
|
||
|
|
||
|
void DomConnection::setElementReceiver(const QString& a)
|
||
|
{
|
||
|
m_children |= Receiver;
|
||
|
m_receiver = a;
|
||
|
}
|
||
|
|
||
|
void DomConnection::setElementSlot(const QString& a)
|
||
|
{
|
||
|
m_children |= Slot;
|
||
|
m_slot = a;
|
||
|
}
|
||
|
|
||
|
DomConnectionHints* DomConnection::takeElementHints()
|
||
|
{
|
||
|
DomConnectionHints* a = m_hints;
|
||
|
m_hints = 0;
|
||
|
m_children ^= Hints;
|
||
|
return a;
|
||
|
}
|
||
|
|
||
|
void DomConnection::setElementHints(DomConnectionHints* a)
|
||
|
{
|
||
|
delete m_hints;
|
||
|
m_children |= Hints;
|
||
|
m_hints = a;
|
||
|
}
|
||
|
|
||
|
void DomConnection::clearElementSender()
|
||
|
{
|
||
|
m_children &= ~Sender;
|
||
|
}
|
||
|
|
||
|
void DomConnection::clearElementSignal()
|
||
|
{
|
||
|
m_children &= ~Signal;
|
||
|
}
|
||
|
|
||
|
void DomConnection::clearElementReceiver()
|
||
|
{
|
||
|
m_children &= ~Receiver;
|
||
|
}
|
||
|
|
||
|
void DomConnection::clearElementSlot()
|
||
|
{
|
||
|
m_children &= ~Slot;
|
||
|
}
|
||
|
|
||
|
void DomConnection::clearElementHints()
|
||
|
{
|
||
|
delete m_hints;
|
||
|
m_hints = 0;
|
||
|
m_children &= ~Hints;
|
||
|
}
|
||
|
|
||
|
void DomConnectionHints::clear(bool clear_all)
|
||
|
{
|
||
|
qDeleteAll(m_hint);
|
||
|
m_hint.clear();
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomConnectionHints::DomConnectionHints()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomConnectionHints::~DomConnectionHints()
|
||
|
{
|
||
|
qDeleteAll(m_hint);
|
||
|
m_hint.clear();
|
||
|
}
|
||
|
|
||
|
void DomConnectionHints::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("hint")) {
|
||
|
DomConnectionHint *v = new DomConnectionHint();
|
||
|
v->read(reader);
|
||
|
m_hint.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomConnectionHints::read(const QDomElement &node)
|
||
|
{
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("hint")) {
|
||
|
DomConnectionHint *v = new DomConnectionHint();
|
||
|
v->read(e);
|
||
|
m_hint.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomConnectionHints::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("connectionhints") : tagName.toLower());
|
||
|
|
||
|
for (int i = 0; i < m_hint.size(); ++i) {
|
||
|
DomConnectionHint* v = m_hint[i];
|
||
|
v->write(writer, QLatin1String("hint"));
|
||
|
}
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomConnectionHints::setElementHint(const QList<DomConnectionHint*>& a)
|
||
|
{
|
||
|
m_children |= Hint;
|
||
|
m_hint = a;
|
||
|
}
|
||
|
|
||
|
void DomConnectionHint::clear(bool clear_all)
|
||
|
{
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
m_has_attr_type = false;
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
m_x = 0;
|
||
|
m_y = 0;
|
||
|
}
|
||
|
|
||
|
DomConnectionHint::DomConnectionHint()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_has_attr_type = false;
|
||
|
m_x = 0;
|
||
|
m_y = 0;
|
||
|
}
|
||
|
|
||
|
DomConnectionHint::~DomConnectionHint()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
void DomConnectionHint::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
foreach (const QXmlStreamAttribute &attribute, reader.attributes()) {
|
||
|
QStringRef name = attribute.name();
|
||
|
if (name == QLatin1String("type")) {
|
||
|
setAttributeType(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected attribute ") + name.toString());
|
||
|
}
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QString(QLatin1Char('x'))) {
|
||
|
setElementX(reader.readElementText().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QString(QLatin1Char('y'))) {
|
||
|
setElementY(reader.readElementText().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomConnectionHint::read(const QDomElement &node)
|
||
|
{
|
||
|
if (node.hasAttribute(QLatin1String("type")))
|
||
|
setAttributeType(node.attribute(QLatin1String("type")));
|
||
|
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QString(QLatin1Char('x'))) {
|
||
|
setElementX(e.text().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QString(QLatin1Char('y'))) {
|
||
|
setElementY(e.text().toInt());
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomConnectionHint::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("connectionhint") : tagName.toLower());
|
||
|
|
||
|
if (hasAttributeType())
|
||
|
writer.writeAttribute(QLatin1String("type"), attributeType());
|
||
|
|
||
|
if (m_children & X) {
|
||
|
writer.writeTextElement(QString(QLatin1Char('x')), QString::number(m_x));
|
||
|
}
|
||
|
|
||
|
if (m_children & Y) {
|
||
|
writer.writeTextElement(QString(QLatin1Char('y')), QString::number(m_y));
|
||
|
}
|
||
|
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomConnectionHint::setElementX(int a)
|
||
|
{
|
||
|
m_children |= X;
|
||
|
m_x = a;
|
||
|
}
|
||
|
|
||
|
void DomConnectionHint::setElementY(int a)
|
||
|
{
|
||
|
m_children |= Y;
|
||
|
m_y = a;
|
||
|
}
|
||
|
|
||
|
void DomConnectionHint::clearElementX()
|
||
|
{
|
||
|
m_children &= ~X;
|
||
|
}
|
||
|
|
||
|
void DomConnectionHint::clearElementY()
|
||
|
{
|
||
|
m_children &= ~Y;
|
||
|
}
|
||
|
|
||
|
void DomScript::clear(bool clear_all)
|
||
|
{
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
m_has_attr_source = false;
|
||
|
m_has_attr_language = false;
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomScript::DomScript()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_has_attr_source = false;
|
||
|
m_has_attr_language = false;
|
||
|
}
|
||
|
|
||
|
DomScript::~DomScript()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
void DomScript::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
foreach (const QXmlStreamAttribute &attribute, reader.attributes()) {
|
||
|
QStringRef name = attribute.name();
|
||
|
if (name == QLatin1String("source")) {
|
||
|
setAttributeSource(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
if (name == QLatin1String("language")) {
|
||
|
setAttributeLanguage(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected attribute ") + name.toString());
|
||
|
}
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomScript::read(const QDomElement &node)
|
||
|
{
|
||
|
if (node.hasAttribute(QLatin1String("source")))
|
||
|
setAttributeSource(node.attribute(QLatin1String("source")));
|
||
|
if (node.hasAttribute(QLatin1String("language")))
|
||
|
setAttributeLanguage(node.attribute(QLatin1String("language")));
|
||
|
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomScript::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("script") : tagName.toLower());
|
||
|
|
||
|
if (hasAttributeSource())
|
||
|
writer.writeAttribute(QLatin1String("source"), attributeSource());
|
||
|
|
||
|
if (hasAttributeLanguage())
|
||
|
writer.writeAttribute(QLatin1String("language"), attributeLanguage());
|
||
|
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomWidgetData::clear(bool clear_all)
|
||
|
{
|
||
|
qDeleteAll(m_property);
|
||
|
m_property.clear();
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomWidgetData::DomWidgetData()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomWidgetData::~DomWidgetData()
|
||
|
{
|
||
|
qDeleteAll(m_property);
|
||
|
m_property.clear();
|
||
|
}
|
||
|
|
||
|
void DomWidgetData::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("property")) {
|
||
|
DomProperty *v = new DomProperty();
|
||
|
v->read(reader);
|
||
|
m_property.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomWidgetData::read(const QDomElement &node)
|
||
|
{
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("property")) {
|
||
|
DomProperty *v = new DomProperty();
|
||
|
v->read(e);
|
||
|
m_property.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomWidgetData::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("widgetdata") : tagName.toLower());
|
||
|
|
||
|
for (int i = 0; i < m_property.size(); ++i) {
|
||
|
DomProperty* v = m_property[i];
|
||
|
v->write(writer, QLatin1String("property"));
|
||
|
}
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomWidgetData::setElementProperty(const QList<DomProperty*>& a)
|
||
|
{
|
||
|
m_children |= Property;
|
||
|
m_property = a;
|
||
|
}
|
||
|
|
||
|
void DomDesignerData::clear(bool clear_all)
|
||
|
{
|
||
|
qDeleteAll(m_property);
|
||
|
m_property.clear();
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomDesignerData::DomDesignerData()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomDesignerData::~DomDesignerData()
|
||
|
{
|
||
|
qDeleteAll(m_property);
|
||
|
m_property.clear();
|
||
|
}
|
||
|
|
||
|
void DomDesignerData::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("property")) {
|
||
|
DomProperty *v = new DomProperty();
|
||
|
v->read(reader);
|
||
|
m_property.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomDesignerData::read(const QDomElement &node)
|
||
|
{
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("property")) {
|
||
|
DomProperty *v = new DomProperty();
|
||
|
v->read(e);
|
||
|
m_property.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomDesignerData::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("designerdata") : tagName.toLower());
|
||
|
|
||
|
for (int i = 0; i < m_property.size(); ++i) {
|
||
|
DomProperty* v = m_property[i];
|
||
|
v->write(writer, QLatin1String("property"));
|
||
|
}
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomDesignerData::setElementProperty(const QList<DomProperty*>& a)
|
||
|
{
|
||
|
m_children |= Property;
|
||
|
m_property = a;
|
||
|
}
|
||
|
|
||
|
void DomSlots::clear(bool clear_all)
|
||
|
{
|
||
|
m_signal.clear();
|
||
|
m_slot.clear();
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomSlots::DomSlots()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomSlots::~DomSlots()
|
||
|
{
|
||
|
m_signal.clear();
|
||
|
m_slot.clear();
|
||
|
}
|
||
|
|
||
|
void DomSlots::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("signal")) {
|
||
|
m_signal.append(reader.readElementText());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("slot")) {
|
||
|
m_slot.append(reader.readElementText());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomSlots::read(const QDomElement &node)
|
||
|
{
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("signal")) {
|
||
|
m_signal.append(e.text());
|
||
|
continue;
|
||
|
}
|
||
|
if (tag == QLatin1String("slot")) {
|
||
|
m_slot.append(e.text());
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomSlots::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("slots") : tagName.toLower());
|
||
|
|
||
|
for (int i = 0; i < m_signal.size(); ++i) {
|
||
|
QString v = m_signal[i];
|
||
|
writer.writeTextElement(QLatin1String("signal"), v);
|
||
|
}
|
||
|
for (int i = 0; i < m_slot.size(); ++i) {
|
||
|
QString v = m_slot[i];
|
||
|
writer.writeTextElement(QLatin1String("slot"), v);
|
||
|
}
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomSlots::setElementSignal(const QStringList& a)
|
||
|
{
|
||
|
m_children |= Signal;
|
||
|
m_signal = a;
|
||
|
}
|
||
|
|
||
|
void DomSlots::setElementSlot(const QStringList& a)
|
||
|
{
|
||
|
m_children |= Slot;
|
||
|
m_slot = a;
|
||
|
}
|
||
|
|
||
|
void DomPropertySpecifications::clear(bool clear_all)
|
||
|
{
|
||
|
qDeleteAll(m_stringpropertyspecification);
|
||
|
m_stringpropertyspecification.clear();
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomPropertySpecifications::DomPropertySpecifications()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomPropertySpecifications::~DomPropertySpecifications()
|
||
|
{
|
||
|
qDeleteAll(m_stringpropertyspecification);
|
||
|
m_stringpropertyspecification.clear();
|
||
|
}
|
||
|
|
||
|
void DomPropertySpecifications::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
if (tag == QLatin1String("stringpropertyspecification")) {
|
||
|
DomStringPropertySpecification *v = new DomStringPropertySpecification();
|
||
|
v->read(reader);
|
||
|
m_stringpropertyspecification.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomPropertySpecifications::read(const QDomElement &node)
|
||
|
{
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
if (tag == QLatin1String("stringpropertyspecification")) {
|
||
|
DomStringPropertySpecification *v = new DomStringPropertySpecification();
|
||
|
v->read(e);
|
||
|
m_stringpropertyspecification.append(v);
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomPropertySpecifications::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("propertyspecifications") : tagName.toLower());
|
||
|
|
||
|
for (int i = 0; i < m_stringpropertyspecification.size(); ++i) {
|
||
|
DomStringPropertySpecification* v = m_stringpropertyspecification[i];
|
||
|
v->write(writer, QLatin1String("stringpropertyspecification"));
|
||
|
}
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
void DomPropertySpecifications::setElementStringpropertyspecification(const QList<DomStringPropertySpecification*>& a)
|
||
|
{
|
||
|
m_children |= Stringpropertyspecification;
|
||
|
m_stringpropertyspecification = a;
|
||
|
}
|
||
|
|
||
|
void DomStringPropertySpecification::clear(bool clear_all)
|
||
|
{
|
||
|
|
||
|
if (clear_all) {
|
||
|
m_text.clear();
|
||
|
m_has_attr_name = false;
|
||
|
m_has_attr_type = false;
|
||
|
m_has_attr_notr = false;
|
||
|
}
|
||
|
|
||
|
m_children = 0;
|
||
|
}
|
||
|
|
||
|
DomStringPropertySpecification::DomStringPropertySpecification()
|
||
|
{
|
||
|
m_children = 0;
|
||
|
m_has_attr_name = false;
|
||
|
m_has_attr_type = false;
|
||
|
m_has_attr_notr = false;
|
||
|
}
|
||
|
|
||
|
DomStringPropertySpecification::~DomStringPropertySpecification()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
void DomStringPropertySpecification::read(QXmlStreamReader &reader)
|
||
|
{
|
||
|
|
||
|
foreach (const QXmlStreamAttribute &attribute, reader.attributes()) {
|
||
|
QStringRef name = attribute.name();
|
||
|
if (name == QLatin1String("name")) {
|
||
|
setAttributeName(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
if (name == QLatin1String("type")) {
|
||
|
setAttributeType(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
if (name == QLatin1String("notr")) {
|
||
|
setAttributeNotr(attribute.value().toString());
|
||
|
continue;
|
||
|
}
|
||
|
reader.raiseError(QLatin1String("Unexpected attribute ") + name.toString());
|
||
|
}
|
||
|
|
||
|
for (bool finished = false; !finished && !reader.hasError();) {
|
||
|
switch (reader.readNext()) {
|
||
|
case QXmlStreamReader::StartElement : {
|
||
|
const QString tag = reader.name().toString().toLower();
|
||
|
reader.raiseError(QLatin1String("Unexpected element ") + tag);
|
||
|
}
|
||
|
break;
|
||
|
case QXmlStreamReader::EndElement :
|
||
|
finished = true;
|
||
|
break;
|
||
|
case QXmlStreamReader::Characters :
|
||
|
if (!reader.isWhitespace())
|
||
|
m_text.append(reader.text().toString());
|
||
|
break;
|
||
|
default :
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#ifdef QUILOADER_QDOM_READ
|
||
|
void DomStringPropertySpecification::read(const QDomElement &node)
|
||
|
{
|
||
|
if (node.hasAttribute(QLatin1String("name")))
|
||
|
setAttributeName(node.attribute(QLatin1String("name")));
|
||
|
if (node.hasAttribute(QLatin1String("type")))
|
||
|
setAttributeType(node.attribute(QLatin1String("type")));
|
||
|
if (node.hasAttribute(QLatin1String("notr")))
|
||
|
setAttributeNotr(node.attribute(QLatin1String("notr")));
|
||
|
|
||
|
for (QDomNode n = node.firstChild(); !n.isNull(); n = n.nextSibling()) {
|
||
|
if (!n.isElement())
|
||
|
continue;
|
||
|
QDomElement e = n.toElement();
|
||
|
QString tag = e.tagName().toLower();
|
||
|
}
|
||
|
m_text.clear();
|
||
|
for (QDomNode child = node.firstChild(); !child.isNull(); child = child.nextSibling()) {
|
||
|
if (child.isText())
|
||
|
m_text.append(child.nodeValue());
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void DomStringPropertySpecification::write(QXmlStreamWriter &writer, const QString &tagName) const
|
||
|
{
|
||
|
writer.writeStartElement(tagName.isEmpty() ? QString::fromUtf8("stringpropertyspecification") : tagName.toLower());
|
||
|
|
||
|
if (hasAttributeName())
|
||
|
writer.writeAttribute(QLatin1String("name"), attributeName());
|
||
|
|
||
|
if (hasAttributeType())
|
||
|
writer.writeAttribute(QLatin1String("type"), attributeType());
|
||
|
|
||
|
if (hasAttributeNotr())
|
||
|
writer.writeAttribute(QLatin1String("notr"), attributeNotr());
|
||
|
|
||
|
if (!m_text.isEmpty())
|
||
|
writer.writeCharacters(m_text);
|
||
|
|
||
|
writer.writeEndElement();
|
||
|
}
|
||
|
|
||
|
QT_END_NAMESPACE
|
||
|
|