File indexing completed on 2025-01-19 10:49:27
0001 /* This file is part of the KDE project 0002 0003 SPDX-FileCopyrightText: 2012-2014 Inge Wallin <inge@lysator.liu.se> 0004 0005 SPDX-License-Identifier: LGPL-2.0-or-later 0006 */ 0007 0008 #ifndef ODFREADERINTERNALS_H 0009 #define ODFREADERINTERNALS_H 0010 0011 0012 // ---------------------------------------------------------------- 0013 // Reader functions 0014 0015 0016 #define DECLARE_READER_FUNCTION(name) \ 0017 void readElement##name(KoXmlStreamReader &reader) 0018 0019 #define IMPLEMENT_READER_FUNCTION_START(readername, name) \ 0020 void readername::readElement##name(KoXmlStreamReader &reader) \ 0021 { \ 0022 DEBUGSTART(); \ 0023 m_backend->element##name(reader, m_context); 0024 0025 #define IMPLEMENT_READER_FUNCTION_END(name) \ 0026 m_backend->element##name(reader, m_context); \ 0027 DEBUGEND(); \ 0028 } 0029 0030 #define IMPLEMENT_READER_FUNCTION_NO_CHILDREN(readername, name) \ 0031 IMPLEMENT_READER_FUNCTION_START(readername, name) \ 0032 reader.skipCurrentElement(); \ 0033 IMPLEMENT_READER_FUNCTION_END(name) 0034 0035 #define IMPLEMENT_READER_FUNCTION_ONE_CHILD(readername, name, element, childfunction) \ 0036 IMPLEMENT_READER_FUNCTION_START(readername, name) \ 0037 while (reader.readNextStartElement()) { \ 0038 QString tagName = reader.qualifiedName().toString(); \ 0039 \ 0040 if (tagName == element) { \ 0041 readElement##childfunction(reader); \ 0042 } \ 0043 else { \ 0044 reader.skipCurrentElement(); \ 0045 } \ 0046 } \ 0047 IMPLEMENT_READER_FUNCTION_END(name) 0048 0049 0050 // ---------------------------------------------------------------- 0051 // Backend functions 0052 0053 0054 #define DECLARE_BACKEND_FUNCTION(name) \ 0055 virtual void element##name(KoXmlStreamReader &reader, OdfReaderContext *context) 0056 0057 #define IMPLEMENT_BACKEND_FUNCTION(readername, name) \ 0058 void readername##Backend::element##name(KoXmlStreamReader &reader, \ 0059 OdfReaderContext *context) \ 0060 { \ 0061 Q_UNUSED(reader); \ 0062 Q_UNUSED(context); \ 0063 } 0064 0065 0066 #endif // ODFREADERINTERNALS_H