lbajardsilogic@0: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ lbajardsilogic@0: lbajardsilogic@0: /* lbajardsilogic@0: Sonic Visualiser lbajardsilogic@0: An audio file viewer and annotation editor. lbajardsilogic@0: Centre for Digital Music, Queen Mary, University of London. lbajardsilogic@0: This file copyright 2006 Chris Cannam. lbajardsilogic@0: lbajardsilogic@0: This program is free software; you can redistribute it and/or lbajardsilogic@0: modify it under the terms of the GNU General Public License as lbajardsilogic@0: published by the Free Software Foundation; either version 2 of the lbajardsilogic@0: License, or (at your option) any later version. See the file lbajardsilogic@0: COPYING included with this distribution for more information. lbajardsilogic@0: */ lbajardsilogic@0: lbajardsilogic@0: #include "XmlExportable.h" lbajardsilogic@0: #include lbajardsilogic@0: #include lbajardsilogic@0: #include lbajardsilogic@0: #include lbajardsilogic@0: lbajardsilogic@0: void lbajardsilogic@0: XmlExportable::toXml(QTextStream &stream, QString indent, lbajardsilogic@0: QString extraAttributes) const lbajardsilogic@0: { lbajardsilogic@0: stream << toXmlString(indent, extraAttributes); lbajardsilogic@0: } lbajardsilogic@0: lbajardsilogic@0: QString lbajardsilogic@0: XmlExportable::encodeEntities(QString s) lbajardsilogic@0: { lbajardsilogic@0: s lbajardsilogic@0: .replace("&", "&") lbajardsilogic@0: .replace("<", "<") lbajardsilogic@0: .replace(">", ">") lbajardsilogic@0: .replace("\"", """) lbajardsilogic@0: .replace("'", "'"); lbajardsilogic@0: lbajardsilogic@0: return s; lbajardsilogic@0: } lbajardsilogic@0: lbajardsilogic@0: QString lbajardsilogic@0: XmlExportable::encodeColour(QColor c) lbajardsilogic@0: { lbajardsilogic@0: QString r, g, b; lbajardsilogic@0: lbajardsilogic@0: r.setNum(c.red(), 16); lbajardsilogic@0: if (c.red() < 16) r = "0" + r; lbajardsilogic@0: lbajardsilogic@0: g.setNum(c.green(), 16); lbajardsilogic@0: if (c.green() < 16) g = "0" + g; lbajardsilogic@0: lbajardsilogic@0: b.setNum(c.blue(), 16); lbajardsilogic@0: if (c.blue() < 16) b = "0" + b; lbajardsilogic@0: lbajardsilogic@0: return "#" + r + g + b; lbajardsilogic@0: } lbajardsilogic@0: lbajardsilogic@0: int lbajardsilogic@0: XmlExportable::getObjectExportId(const void * object) lbajardsilogic@0: { lbajardsilogic@0: static QMutex mutex; lbajardsilogic@0: QMutexLocker locker(&mutex); lbajardsilogic@0: lbajardsilogic@0: static std::map idMap; lbajardsilogic@0: static int maxId = 0; lbajardsilogic@0: lbajardsilogic@0: if (idMap.find(object) == idMap.end()) { lbajardsilogic@0: idMap[object] = maxId++; lbajardsilogic@0: } lbajardsilogic@0: lbajardsilogic@0: return idMap[object]; lbajardsilogic@0: } lbajardsilogic@0: lbajardsilogic@0: