diff options
Diffstat (limited to 'attic/muse_qt4_evolution/al/xml.cpp')
-rw-r--r-- | attic/muse_qt4_evolution/al/xml.cpp | 362 |
1 files changed, 0 insertions, 362 deletions
diff --git a/attic/muse_qt4_evolution/al/xml.cpp b/attic/muse_qt4_evolution/al/xml.cpp deleted file mode 100644 index 7ae40b3e..00000000 --- a/attic/muse_qt4_evolution/al/xml.cpp +++ /dev/null @@ -1,362 +0,0 @@ -//============================================================================= -// AL -// Audio Utility Library -// $Id:$ -// -// Copyright (C) 2002-2006 by Werner Schweer and others -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License version 2. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -//============================================================================= - -#include "xml.h" -#include "al.h" - -namespace AL { - -//--------------------------------------------------------- -// Xml -//--------------------------------------------------------- - -Xml::Xml() - { - level = 0; - } - -Xml::Xml(QIODevice* device) - : QTextStream(device) - { - setCodec("utf8"); - level = 0; - } - -//--------------------------------------------------------- -// putLevel -//--------------------------------------------------------- - -void Xml::putLevel() - { - for (int i = 0; i < level*2; ++i) - *this << ' '; - } - -//--------------------------------------------------------- -// header -//--------------------------------------------------------- - -void Xml::header() - { - *this << "<?xml version=\"1.0\" encoding=\"utf8\"?>" << endl; - } - -//--------------------------------------------------------- -// put -//--------------------------------------------------------- - -void Xml::put(const QString& s) - { - putLevel(); - *this << xmlString(s) << endl; - } - -//--------------------------------------------------------- -// stag -// <mops attribute="value"> -//--------------------------------------------------------- - -void Xml::stag(const QString& s) - { - putLevel(); - *this << '<' << s << '>' << endl; - ++level; - } - -//--------------------------------------------------------- -// etag -//--------------------------------------------------------- - -void Xml::etag(const char* s) - { - putLevel(); - *this << "</" << s << '>' << endl; - --level; - } - -//--------------------------------------------------------- -// tagE -// <mops attribute="value"/> -//--------------------------------------------------------- - -void Xml::tagE(const QString& s) - { - putLevel(); - *this << '<' << s << "/>" << endl; - } - -void Xml::tag(const char* name, int val) - { - putLevel(); - *this << '<' << name << '>' << val << "</" << name << '>' << endl; - } - -void Xml::tag(const char* name, unsigned val) - { - putLevel(); - *this << '<' << name << '>' << val << "</" << name << '>' << endl; - } - -void Xml::tag(const char* name, float val) - { - putLevel(); - *this << '<' << name << '>' << val << "</" << name << '>' << endl; - } - -void Xml::tag(const char* name, const double& val) - { - putLevel(); - *this << '<' << name << '>' << val << "</" << name << '>' << endl; - } - -void Xml::tag(const char* name, const QString& val) - { - putLevel(); - *this << "<" << name << ">" << xmlString(val) << "</" << name << '>' << endl; - } - -void Xml::tag(const char* name, const QColor& color) - { - putLevel(); - *this << QString("<%1 r=\"%2\" g=\"%3\" b=\"%4\"/>") - .arg(name).arg(color.red()).arg(color.green()).arg(color.blue()) << endl; - } - -void Xml::tag(const char* name, const QWidget* g) - { - tag(name, QRect(g->pos(), g->size())); - } - -void Xml::tag(const char* name, const QRect& r) - { - putLevel(); - *this << "<" << name; - *this << QString(" x=\"%1\" y=\"%2\" w=\"%3\" h=\"%4\"/>") - .arg(r.x()).arg(r.y()).arg(r.width()).arg(r.height()) << endl; - } - -//--------------------------------------------------------- -// xmlString -//--------------------------------------------------------- - -QString Xml::xmlString(const QString& ss) - { - QString s(ss); - s.replace('&', "&"); - s.replace('<', "<"); - s.replace('>', ">"); - s.replace('\'', "'"); - s.replace('"', """); - return s; - } - -//--------------------------------------------------------- -// readGeometry -//--------------------------------------------------------- - -QRect readGeometry(QDomNode node) - { - QDomElement e = node.toElement(); - int x = e.attribute("x","0").toInt(); - int y = e.attribute("y","0").toInt(); - int w = e.attribute("w","50").toInt(); - int h = e.attribute("h","50").toInt(); - return QRect(x, y, w, h); - } - -//--------------------------------------------------------- -// writeProperties -//--------------------------------------------------------- - -void Xml::writeProperties(const QObject* o) - { - const QMetaObject* meta = o->metaObject(); - - // - // start from dummy "muse" property, assuming this is the - // first muse propertie in widget hierarchy - // - int from = meta->indexOfProperty("muse") + 1; - int n = meta->propertyCount(); - for (int i = from; i < n; ++i) { - QMetaProperty p = meta->property(i); - if (!p.isScriptable()) - continue; - const char* name = p.name(); - QVariant v = p.read(o); - switch(v.type()) { - case QVariant::Bool: - case QVariant::Int: - tag(name, v.toInt()); - break; - case QVariant::Double: - tag(name, v.toDouble()); - break; - case QVariant::String: - tag(name, v.toString()); - break; - case QVariant::Rect: - tag(name, v.toRect()); - break; - case QVariant::Point: - { - QPoint p = v.toPoint(); - putLevel(); - *this << "<" << name << QString(" x=\"%1\" y=\"%2\" />") - .arg(p.x()).arg(p.y()) << endl; - } - break; - - default: - printf("MusE:%s type %d not implemented\n", - meta->className(), v.type()); - break; - } - } - } - -//--------------------------------------------------------- -// readProperties -//--------------------------------------------------------- - -void readProperties(QObject* o, QDomNode node) - { - const QMetaObject* meta = o->metaObject(); - - QDomElement e = node.toElement(); - QString tag(e.tagName()); - int idx = meta->indexOfProperty(tag.toLatin1().data()); - if (idx == -1) { - printf("MusE:%s: unknown tag %s\n", - meta->className(), tag.toLatin1().data()); - return; - } - QMetaProperty p = meta->property(idx); - QVariant v; - switch(p.type()) { - case QVariant::Int: - case QVariant::Bool: - v.setValue(e.text().toInt()); - break; - case QVariant::Double: - v.setValue(e.text().toDouble()); - break; - case QVariant::String: - v.setValue(e.text()); - break; - case QVariant::Rect: - v.setValue(AL::readGeometry(node)); - break; - case QVariant::Point: - { - int x = e.attribute("x","0").toInt(); - int y = e.attribute("y","0").toInt(); - v.setValue(QPoint(x, y)); - } - break; - default: - printf("MusE:%s type %d not implemented\n", - meta->className(), p.type()); - return; - } - if (p.isWritable()) - p.write(o, v); - } - -//--------------------------------------------------------- -// dump -//--------------------------------------------------------- - -void Xml::dump(int len, const unsigned char* p) - { - putLevel(); - int col = 0; - setFieldWidth(5); - setNumberFlags(numberFlags() | QTextStream::ShowBase); - setIntegerBase(16); - for (int i = 0; i < len; ++i, ++col) { - if (col >= 16) { - setFieldWidth(0); - *this << endl; - col = 0; - putLevel(); - setFieldWidth(5); - } - *this << (p[i] & 0xff); - } - if (col) - *this << endl << dec; - setFieldWidth(0); - setIntegerBase(10); - } - -//--------------------------------------------------------- -// domError -//--------------------------------------------------------- - -void domError(QDomNode node) - { - QDomElement e = node.toElement(); - QString tag(e.tagName()); - QString s; - QDomNode dn(node); - while (!dn.parentNode().isNull()) { - dn = dn.parentNode(); - const QDomElement e = dn.toElement(); - const QString k(e.tagName()); - if (!s.isEmpty()) - s += ":"; - s += k; - } - fprintf(stderr, "%s: Unknown Node <%s>, type %d\n", - s.toLatin1().data(), tag.toLatin1().data(), node.nodeType()); - if (node.isText()) { - fprintf(stderr, " text node <%s>\n", node.toText().data().toLatin1().data()); - } - } - -//--------------------------------------------------------- -// domNotImplemented -//--------------------------------------------------------- - -void domNotImplemented(QDomNode node) - { - if (!AL::debugMsg) - return; - QDomElement e = node.toElement(); - QString tag(e.tagName()); - QString s; - QDomNode dn(node); - while (!dn.parentNode().isNull()) { - dn = dn.parentNode(); - const QDomElement e = dn.toElement(); - const QString k(e.tagName()); - if (!s.isEmpty()) - s += ":"; - s += k; - } - fprintf(stderr, "%s: Node not implemented: <%s>, type %d\n", - s.toLatin1().data(), tag.toLatin1().data(), node.nodeType()); - if (node.isText()) { - fprintf(stderr, " text node <%s>\n", node.toText().data().toLatin1().data()); - } - } -} - |