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