File indexing completed on 2024-05-12 03:47:46

0001 /*
0002     File                 : XmlStreamReader.h
0003     Project              : LabPlot
0004     Description          : XML stream parser that supports errors and warnings
0005     --------------------------------------------------------------------
0006     SPDX-FileCopyrightText: 2009 Tilman Benkert <thzs@gmx.net>
0007     SPDX-FileCopyrightText: 2015-2016 Alexander Semke <alexander.semke@web.de>
0008 
0009     SPDX-License-Identifier: GPL-2.0-or-later
0010 */
0011 
0012 #ifndef XML_STREAM_READER_H
0013 #define XML_STREAM_READER_H
0014 
0015 #include <QXmlStreamReader>
0016 
0017 class QString;
0018 
0019 class XmlStreamReader : public QXmlStreamReader {
0020 public:
0021     XmlStreamReader();
0022     explicit XmlStreamReader(QIODevice* device);
0023     explicit XmlStreamReader(const QByteArray& data);
0024     explicit XmlStreamReader(const QString& data);
0025     explicit XmlStreamReader(const char* data);
0026 
0027     const QStringList& warningStrings() const;
0028     QString missingCASWarning() const;
0029 
0030     bool hasWarnings() const;
0031     bool hasMissingCASWarnings() const;
0032 
0033     void setFailedCASMissing(bool);
0034     bool failedCASMissing() const;
0035 
0036     void raiseWarning(const QString&);
0037     void raiseMissingAttributeWarning(const QString&);
0038     void raiseUnknownElementWarning();
0039     void raiseMissingCASWarning(const QString&);
0040     void raiseError(const QString&);
0041 
0042     bool skipToNextTag();
0043     bool skipToEndElement();
0044     int readAttributeInt(const QString& name, bool* ok);
0045 
0046 private:
0047     QStringList m_warnings;
0048     QStringList m_missingCASPlugins;
0049     bool m_failedCASMissing{false};
0050     void init();
0051 };
0052 
0053 #endif // XML_STREAM_READER_H