comparison base/XmlExportable.h @ 0:fc9323a41f5a

start base : Sonic Visualiser sv1-1.0rc1
author lbajardsilogic
date Fri, 11 May 2007 09:08:14 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:fc9323a41f5a
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
2
3 /*
4 Sonic Visualiser
5 An audio file viewer and annotation editor.
6 Centre for Digital Music, Queen Mary, University of London.
7 This file copyright 2006 Chris Cannam.
8
9 This program is free software; you can redistribute it and/or
10 modify it under the terms of the GNU General Public License as
11 published by the Free Software Foundation; either version 2 of the
12 License, or (at your option) any later version. See the file
13 COPYING included with this distribution for more information.
14 */
15
16 #ifndef _XML_EXPORTABLE_H_
17 #define _XML_EXPORTABLE_H_
18
19 #include <QString>
20 #include <QColor>
21
22 class QTextStream;
23
24 class XmlExportable
25 {
26 public:
27 virtual ~XmlExportable() { }
28
29 /**
30 * Stream this exportable object out to XML on a text stream.
31 *
32 * The default implementation calls toXmlString and streams the
33 * resulting string. This is only appropriate for objects with
34 * short representations. Bigger objects should override this
35 * method so as to write to the stream directly and override
36 * toXmlString with a method that calls this one, so that the
37 * direct streaming method can be used when appropriate.
38 */
39 virtual void toXml(QTextStream &stream,
40 QString indent = "",
41 QString extraAttributes = "") const;
42
43 /**
44 * Convert this exportable object to XML in a string.
45 */
46 virtual QString toXmlString(QString indent = "",
47 QString extraAttributes = "") const = 0;
48
49 static QString encodeEntities(QString);
50
51 static QString encodeColour(QColor);
52
53 static int getObjectExportId(const void *); // thread-safe
54 };
55
56 #endif