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
|