annotate sv/document/ESFileReader.h @ 203:74d1b3bda5a3

allow to save and restore the filter settings from an easaier session
author lbajardsilogic
date Tue, 29 Jan 2008 17:21:42 +0000
parents 2a6f70f97395
children
rev   line source
lbajardsilogic@19 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
lbajardsilogic@19 2
lbajardsilogic@19 3 /* Sound Access
lbajardsilogic@19 4 EASAIER client application.
lbajardsilogic@19 5 Silogic 2007. Laure Bajard.
lbajardsilogic@19 6
lbajardsilogic@19 7 This program is free software; you can redistribute it and/or
lbajardsilogic@19 8 modify it under the terms of the GNU General Public License as
lbajardsilogic@19 9 published by the Free Software Foundation; either version 2 of the
lbajardsilogic@19 10 License, or (at your option) any later version. See the file
lbajardsilogic@19 11 COPYING included with this distribution for more information.
lbajardsilogic@19 12 */
lbajardsilogic@19 13
lbajardsilogic@19 14 #ifndef _ES_FILE_READER_H_
lbajardsilogic@19 15 #define _ES_FILE_READER_H_
lbajardsilogic@19 16
lbajardsilogic@19 17 #include "layer/LayerFactory.h"
lbajardsilogic@19 18 #include "transform/Transform.h"
lbajardsilogic@19 19 #include "data/model/AudioSourceInfoModel.h"
lbajardsilogic@19 20 #include "data/fileio/HttpClient.h"
lbajardsilogic@19 21
lbajardsilogic@19 22 #include <QXmlDefaultHandler>
lbajardsilogic@19 23
lbajardsilogic@19 24 #include <map>
lbajardsilogic@19 25
lbajardsilogic@19 26 class Pane;
lbajardsilogic@19 27 class Model;
lbajardsilogic@19 28 class Document;
lbajardsilogic@19 29 class PlayParameters;
lbajardsilogic@19 30
lbajardsilogic@19 31 class ESFileReaderPaneCallback
lbajardsilogic@19 32 {
lbajardsilogic@19 33 public:
lbajardsilogic@19 34 virtual ~ESFileReaderPaneCallback(){}
lbajardsilogic@19 35 virtual Pane *addPane() = 0;
lbajardsilogic@19 36 virtual void setWindowSize(int width, int height) = 0;
lbajardsilogic@19 37 virtual void addSelection(int start, int end) = 0;
lbajardsilogic@19 38 };
lbajardsilogic@19 39
lbajardsilogic@19 40 class ESFileReader : public QXmlDefaultHandler
lbajardsilogic@19 41 {
lbajardsilogic@19 42 public:
lbajardsilogic@19 43 ESFileReader(Document *document,
lbajardsilogic@19 44 ESFileReaderPaneCallback &callback);
lbajardsilogic@19 45 virtual ~ESFileReader();
lbajardsilogic@19 46
lbajardsilogic@19 47 void parse(const QString &xmlData);
lbajardsilogic@19 48 void parse(QXmlInputSource &source);
lbajardsilogic@19 49
lbajardsilogic@19 50 bool isOK();
lbajardsilogic@19 51 QString getErrorString() const { return m_errorString; }
lbajardsilogic@19 52
lbajardsilogic@19 53 // For loading a single layer onto an existing pane
lbajardsilogic@19 54 void setCurrentPane(Pane *pane) { m_currentPane = pane; }
lbajardsilogic@19 55
lbajardsilogic@19 56 virtual bool startElement(const QString &namespaceURI,
lbajardsilogic@19 57 const QString &localName,
lbajardsilogic@19 58 const QString &qName,
lbajardsilogic@19 59 const QXmlAttributes& atts);
lbajardsilogic@19 60
lbajardsilogic@19 61 virtual bool characters(const QString &);
lbajardsilogic@19 62
lbajardsilogic@19 63 virtual bool endElement(const QString &namespaceURI,
lbajardsilogic@19 64 const QString &localName,
lbajardsilogic@19 65 const QString &qName);
lbajardsilogic@19 66
lbajardsilogic@19 67 bool error(const QXmlParseException &exception);
lbajardsilogic@19 68 bool fatalError(const QXmlParseException &exception);
lbajardsilogic@19 69
lbajardsilogic@19 70 protected:
lbajardsilogic@19 71 bool readWindow(const QXmlAttributes &);
lbajardsilogic@19 72 bool readView(const QXmlAttributes &);
lbajardsilogic@19 73 bool readLayer(const QXmlAttributes &);
lbajardsilogic@203 74 bool readFilter(const QXmlAttributes &);
lbajardsilogic@19 75
lbajardsilogic@19 76 Document *m_document;
lbajardsilogic@19 77 ESFileReaderPaneCallback &m_paneCallback;
lbajardsilogic@19 78 Pane *m_currentPane;
lbajardsilogic@19 79 std::map<int, Layer *> m_layers;
lbajardsilogic@19 80
lbajardsilogic@19 81 bool m_inView;
lbajardsilogic@19 82 bool m_inData;
lbajardsilogic@19 83
lbajardsilogic@19 84 QString m_errorString;
lbajardsilogic@19 85 bool m_ok;
lbajardsilogic@19 86
lbajardsilogic@19 87 };
lbajardsilogic@19 88
lbajardsilogic@19 89
lbajardsilogic@19 90
lbajardsilogic@19 91 #endif