KD Reports API Documentation  2.0
KDReportsXmlParser_p.h
Go to the documentation of this file.
1 /****************************************************************************
2 **
3 ** This file is part of the KD Reports library.
4 **
5 ** SPDX-FileCopyrightText: 2007-2022 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
6 **
7 ** SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDAB-KDReports OR LicenseRef-KDAB-KDReports-US
8 **
9 ** Licensees holding valid commercial KD Reports licenses may use this file in
10 ** accordance with the KD Reports Commercial License Agreement provided with
11 ** the Software.
12 **
13 ** Contact info@kdab.com if any conditions of this licensing are not clear to you.
14 **
15 ****************************************************************************/
16 
17 #ifndef KDREPORTSXMLPARSER_H
18 #define KDREPORTSXMLPARSER_H
19 
20 //
21 // W A R N I N G
22 // -------------
23 //
24 // This file is not part of the KD Reports API. It exists purely as an
25 // implementation detail. This header file may change from version to
26 // version without notice, or even be removed.
27 //
28 // We mean it.
29 //
30 //
31 
32 #include "KDReportsErrorDetails.h"
33 #include "KDReportsGlobal.h"
34 #include "KDReportsReport.h"
35 #include <QPixmap>
36 #include <QtCore/QHash>
37 
38 QT_BEGIN_NAMESPACE
39 class QDomDocument;
40 class QDomNode;
41 QT_END_NAMESPACE
42 
43 namespace KDReports {
44 class TableElement;
45 class XmlElementHandler;
46 class AbstractTableElement;
47 
52 class XmlParser
53 {
54 public:
55  XmlParser(const QHash<QString, QString> &textValues, const QHash<QString, QImage> &imageValues, XmlElementHandler *xmlHandler, KDReports::Report *report, ErrorDetails *details)
56  : m_textValues(textValues)
57  , m_imageValues(imageValues)
58  , m_xmlElementHandler(xmlHandler)
59  , m_report(report)
60  , m_errorDetails(details)
61  {
62  }
63 
64  bool processDocument(const QDomDocument &document, KDReports::ReportBuilder *builder);
65 
66 private:
67  bool processNode(const QDomNode &node, KDReports::ReportBuilder *builder, bool inHeader, bool inFooter);
68  void addElement(KDReports::Element &reportElement, KDReports::ReportBuilder *builder, const QDomElement &element);
69  bool parseTableContents(KDReports::TableElement &table, const QDomNode &tableNode, KDReports::ReportBuilder &builder, bool inHeader, bool inFooter);
70  static void parseCommonTableAttributes(KDReports::AbstractTableElement &tableElement, QDomElement &element);
71  void parseTabs(KDReports::ReportBuilder *builder, const QDomElement &element);
72  void parseParagraphMargins(KDReports::ReportBuilder *builder, const QDomElement &element);
73  QString extractText(const QDomElement &element, QString *id, const QAbstractItemModel *currentModel = nullptr, int currentRow = -1) const;
74  QImage extractImage(const QDomElement &element, QString *pId) const;
75  bool testForErrorAndFillErrorDetails();
76  void error(const QString &errorString);
77 
78  QHash<QString, QString> m_textValues;
79  QHash<QString, QImage> m_imageValues;
80  XmlElementHandler *m_xmlElementHandler;
81  KDReports::Report *m_report;
82  ErrorDetails *m_errorDetails;
83 };
84 
85 }
86 
87 #endif
KDReports::ReportBuilder
Definition: KDReportsReportBuilder_p.h:41
KDReports::XmlParser
Definition: KDReportsXmlParser_p.h:52
KDReports::Element
Definition: KDReportsElement.h:39
KDReportsErrorDetails.h
KDReports::TableElement
Definition: KDReportsTableElement.h:46
KDReports::XmlElementHandler
Definition: KDReportsXmlElementHandler.h:84
KDReports::Report
Definition: KDReportsReport.h:80
KDReportsReport.h
KDReports::XmlParser::processDocument
bool processDocument(const QDomDocument &document, KDReports::ReportBuilder *builder)
Definition: KDReportsXmlParser.cpp:147
KDReportsGlobal.h
KDReports::XmlParser::XmlParser
XmlParser(const QHash< QString, QString > &textValues, const QHash< QString, QImage > &imageValues, XmlElementHandler *xmlHandler, KDReports::Report *report, ErrorDetails *details)
Definition: KDReportsXmlParser_p.h:55
KDReports::ErrorDetails
Definition: KDReportsErrorDetails.h:44
KDReports::AbstractTableElement
Definition: KDReportsAbstractTableElement.h:38
KDReports
Definition: KDReportsAbstractReportLayout_p.h:30

© 2007-2021 Klarälvdalens Datakonsult AB (KDAB)
"The Qt, C++ and OpenGL Experts"
https://www.kdab.com/
https://www.kdab.com/development-resources/qt-tools/kd-reports/
Generated on Sat Jan 8 2022 02:38:32 for KD Reports API Documentation by doxygen 1.8.17