annotate base/XmlExportable.h @ 1693:718ce5fb9fec single-point

Merge
author Chris Cannam
date Thu, 25 Apr 2019 11:30:51 +0100
parents f97d64b8674f
children 4abc0f08adf9
rev   line source
Chris@49 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@3 2
Chris@3 3 /*
Chris@52 4 Sonic Visualiser
Chris@52 5 An audio file viewer and annotation editor.
Chris@52 6 Centre for Digital Music, Queen Mary, University of London.
Chris@52 7 This file copyright 2006 Chris Cannam.
Chris@3 8
Chris@52 9 This program is free software; you can redistribute it and/or
Chris@52 10 modify it under the terms of the GNU General Public License as
Chris@52 11 published by the Free Software Foundation; either version 2 of the
Chris@52 12 License, or (at your option) any later version. See the file
Chris@52 13 COPYING included with this distribution for more information.
Chris@3 14 */
Chris@3 15
Chris@1581 16 #ifndef SV_XML_EXPORTABLE_H
Chris@1581 17 #define SV_XML_EXPORTABLE_H
Chris@3 18
Chris@3 19 #include <QString>
Chris@3 20
Chris@686 21 #include "Debug.h"
Chris@686 22
Chris@123 23 class QTextStream;
Chris@123 24
Chris@3 25 class XmlExportable
Chris@3 26 {
Chris@3 27 public:
Chris@1677 28 XmlExportable() : m_exportId(-1) { }
Chris@27 29 virtual ~XmlExportable() { }
Chris@27 30
Chris@123 31 /**
Chris@1677 32 * Return the numerical export identifier for this object. It's
Chris@1677 33 * allocated the first time this is called, so objects on which
Chris@1677 34 * this is never called do not get allocated one.
Chris@1677 35 */
Chris@1677 36 int getExportId() const;
Chris@1677 37
Chris@1677 38 /**
Chris@123 39 * Stream this exportable object out to XML on a text stream.
Chris@123 40 */
Chris@123 41 virtual void toXml(QTextStream &stream,
Chris@123 42 QString indent = "",
Chris@314 43 QString extraAttributes = "") const = 0;
Chris@123 44
Chris@123 45 /**
Chris@314 46 * Convert this exportable object to XML in a string. The default
Chris@314 47 * implementation calls toXml and returns the result as a string.
Chris@314 48 * Do not override this unless you really know what you're doing.
Chris@123 49 */
Chris@3 50 virtual QString toXmlString(QString indent = "",
Chris@1429 51 QString extraAttributes = "") const;
Chris@3 52
Chris@3 53 static QString encodeEntities(QString);
Chris@3 54
Chris@387 55 static QString encodeColour(int r, int g, int b);
Chris@4 56
Chris@1677 57 private:
Chris@1677 58 mutable int m_exportId;
Chris@3 59 };
Chris@3 60
Chris@3 61 #endif