Mercurial > hg > easaier-soundaccess
diff data/fileio/ModelReader.h @ 15:11e298cdb9e7
add
- EasaierSessionManager
- Easaier menus
- Interval model
author | lbajardsilogic |
---|---|
date | Mon, 14 May 2007 13:10:49 +0000 |
parents | |
children | e006f4a57f86 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data/fileio/ModelReader.h Mon May 14 13:10:49 2007 +0000 @@ -0,0 +1,79 @@ +/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ + +/* Sound Access + EASAIER client application. + Silogic 2007. Laure Bajard. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. See the file + COPYING included with this distribution for more information. +*/ + +#ifndef _MODEL_READER_H_ +#define _MODEL_READER_H_ + +#include <QXmlDefaultHandler> + +#include <map> + +class Document; +class Layer; +class Model; +class Pane; + +class ModelReader +{ +public: + ModelReader(Document *document, Layer * layer = 0, Pane* pane = 0); + virtual ~ModelReader(){} + + bool parse(const QString & filename); + +private: + Document *m_document; + Layer *m_layer; + Pane *m_pane; + +}; + +class ModelHandler : public QXmlDefaultHandler +{ +public: + ModelHandler(Document *document, Layer * layer = 0, Pane* pane = 0); + + bool startElement(const QString &namespaceURI, const QString &localName, + const QString &qName, const QXmlAttributes &attributes); + bool endElement(const QString &namespaceURI, const QString &localName, + const QString &qName); + bool characters(const QString &str); + bool error(const QXmlParseException &exception); + bool fatalError(const QXmlParseException &exception); + + bool readModel(const QXmlAttributes &attributes); + bool readDatasetStart(const QXmlAttributes &attributes); + bool readRowData(const QString &text); + bool addPointToDataset(const QXmlAttributes &attributes); + bool addBinToDataset(const QXmlAttributes &attributes); + bool addRowToDataset(const QXmlAttributes &attributes); + bool addIntervalToDataset(const QXmlAttributes &attributes); + + bool readLayer(const QXmlAttributes &attributes); + +private: + Document *m_document; + Layer *m_layer; + Pane *m_pane; + + Model *m_model; + + bool m_inData; + bool m_inRow; + int m_rowNumber; + + QString m_datasetSeparator; + +}; + +#endif