annotate 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
rev   line source
lbajardsilogic@15 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
lbajardsilogic@15 2
lbajardsilogic@15 3 /* Sound Access
lbajardsilogic@15 4 EASAIER client application.
lbajardsilogic@15 5 Silogic 2007. Laure Bajard.
lbajardsilogic@15 6
lbajardsilogic@15 7 This program is free software; you can redistribute it and/or
lbajardsilogic@15 8 modify it under the terms of the GNU General Public License as
lbajardsilogic@15 9 published by the Free Software Foundation; either version 2 of the
lbajardsilogic@15 10 License, or (at your option) any later version. See the file
lbajardsilogic@15 11 COPYING included with this distribution for more information.
lbajardsilogic@15 12 */
lbajardsilogic@15 13
lbajardsilogic@15 14 #ifndef _MODEL_READER_H_
lbajardsilogic@15 15 #define _MODEL_READER_H_
lbajardsilogic@15 16
lbajardsilogic@15 17 #include <QXmlDefaultHandler>
lbajardsilogic@15 18
lbajardsilogic@15 19 #include <map>
lbajardsilogic@15 20
lbajardsilogic@15 21 class Document;
lbajardsilogic@15 22 class Layer;
lbajardsilogic@15 23 class Model;
lbajardsilogic@15 24 class Pane;
lbajardsilogic@15 25
lbajardsilogic@15 26 class ModelReader
lbajardsilogic@15 27 {
lbajardsilogic@15 28 public:
lbajardsilogic@15 29 ModelReader(Document *document, Layer * layer = 0, Pane* pane = 0);
lbajardsilogic@15 30 virtual ~ModelReader(){}
lbajardsilogic@15 31
lbajardsilogic@15 32 bool parse(const QString & filename);
lbajardsilogic@15 33
lbajardsilogic@15 34 private:
lbajardsilogic@15 35 Document *m_document;
lbajardsilogic@15 36 Layer *m_layer;
lbajardsilogic@15 37 Pane *m_pane;
lbajardsilogic@15 38
lbajardsilogic@15 39 };
lbajardsilogic@15 40
lbajardsilogic@15 41 class ModelHandler : public QXmlDefaultHandler
lbajardsilogic@15 42 {
lbajardsilogic@15 43 public:
lbajardsilogic@15 44 ModelHandler(Document *document, Layer * layer = 0, Pane* pane = 0);
lbajardsilogic@15 45
lbajardsilogic@15 46 bool startElement(const QString &namespaceURI, const QString &localName,
lbajardsilogic@15 47 const QString &qName, const QXmlAttributes &attributes);
lbajardsilogic@15 48 bool endElement(const QString &namespaceURI, const QString &localName,
lbajardsilogic@15 49 const QString &qName);
lbajardsilogic@15 50 bool characters(const QString &str);
lbajardsilogic@15 51 bool error(const QXmlParseException &exception);
lbajardsilogic@15 52 bool fatalError(const QXmlParseException &exception);
lbajardsilogic@15 53
lbajardsilogic@15 54 bool readModel(const QXmlAttributes &attributes);
lbajardsilogic@15 55 bool readDatasetStart(const QXmlAttributes &attributes);
lbajardsilogic@15 56 bool readRowData(const QString &text);
lbajardsilogic@15 57 bool addPointToDataset(const QXmlAttributes &attributes);
lbajardsilogic@15 58 bool addBinToDataset(const QXmlAttributes &attributes);
lbajardsilogic@15 59 bool addRowToDataset(const QXmlAttributes &attributes);
lbajardsilogic@15 60 bool addIntervalToDataset(const QXmlAttributes &attributes);
lbajardsilogic@15 61
lbajardsilogic@15 62 bool readLayer(const QXmlAttributes &attributes);
lbajardsilogic@15 63
lbajardsilogic@15 64 private:
lbajardsilogic@15 65 Document *m_document;
lbajardsilogic@15 66 Layer *m_layer;
lbajardsilogic@15 67 Pane *m_pane;
lbajardsilogic@15 68
lbajardsilogic@15 69 Model *m_model;
lbajardsilogic@15 70
lbajardsilogic@15 71 bool m_inData;
lbajardsilogic@15 72 bool m_inRow;
lbajardsilogic@15 73 int m_rowNumber;
lbajardsilogic@15 74
lbajardsilogic@15 75 QString m_datasetSeparator;
lbajardsilogic@15 76
lbajardsilogic@15 77 };
lbajardsilogic@15 78
lbajardsilogic@15 79 #endif