annotate base/XmlExportable.h @ 1671:82d03c9661f9 single-point

Rework isReady()/getCompletion() on models. Previously the new overhauled models were implementing getCompletion() but inheriting a version of isReady() (from the Model base) that didn't call it, referring only to isOK(). So they were reporting completion as soon as they had begun. Instead hoist getCompletion() to abstract base and call it from Model::isReady().
author Chris Cannam
date Wed, 27 Mar 2019 13:15:16 +0000
parents ad5f892c0c4d
children f97d64b8674f
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@27 28 virtual ~XmlExportable() { }
Chris@27 29
Chris@123 30 /**
Chris@123 31 * Stream this exportable object out to XML on a text stream.
Chris@123 32 */
Chris@123 33 virtual void toXml(QTextStream &stream,
Chris@123 34 QString indent = "",
Chris@314 35 QString extraAttributes = "") const = 0;
Chris@123 36
Chris@123 37 /**
Chris@314 38 * Convert this exportable object to XML in a string. The default
Chris@314 39 * implementation calls toXml and returns the result as a string.
Chris@314 40 * Do not override this unless you really know what you're doing.
Chris@123 41 */
Chris@3 42 virtual QString toXmlString(QString indent = "",
Chris@1429 43 QString extraAttributes = "") const;
Chris@3 44
Chris@3 45 static QString encodeEntities(QString);
Chris@3 46
Chris@387 47 static QString encodeColour(int r, int g, int b);
Chris@4 48
Chris@85 49 static int getObjectExportId(const void *); // thread-safe
Chris@3 50 };
Chris@3 51
Chris@3 52 #endif