Libksieve

xmlprintingscriptbuilder.h
1 /*
2  Copyright (C) 2013-2017 Laurent Montel <[email protected]>
3 
4  This library is free software; you can redistribute it and/or
5  modify it under the terms of the GNU Library General Public
6  License as published by the Free Software Foundation; either
7  version 2 of the License, or (at your option) any later version.
8 
9  This library is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  Library General Public License for more details.
13 
14  You should have received a copy of the GNU Library General Public License
15  along with this library; see the file COPYING.LIB. If not, write to
16  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17  Boston, MA 02110-1301, USA.
18 */
19 
20 #ifndef KSIEVE_KSIEVEUI_XMLPRINTINGSCRIPTBUILDER_H
21 #define KSIEVE_KSIEVEUI_XMLPRINTINGSCRIPTBUILDER_H
22 
23 #include "ksieveui_private_export.h"
24 #include <ksieve/scriptbuilder.h>
25 #include <QString>
26 class QXmlStreamWriter;
27 namespace KSieveUi
28 {
29 class KSIEVEUI_TESTS_EXPORT XMLPrintingScriptBuilder : public KSieve::ScriptBuilder
30 {
31 public:
32  XMLPrintingScriptBuilder();
33  XMLPrintingScriptBuilder(int indent);
34  ~XMLPrintingScriptBuilder() override;
35 
36  void taggedArgument(const QString &tag) override;
37  void stringArgument(const QString &string, bool multiLine, const QString & /*fixme*/) override;
38  void numberArgument(unsigned long number, char quantifier) override;
39  void commandStart(const QString &identifier, int lineNumber) override;
40  void commandEnd(int lineNumber) override;
41  void testStart(const QString &identifier) override;
42  void testEnd() override;
43  void testListStart() override;
44  void testListEnd() override;
45  void blockStart(int lineNumber) override;
46  void blockEnd(int lineNumber) override;
47  void stringListArgumentStart() override;
48  void stringListArgumentEnd() override;
49  void stringListEntry(const QString &string, bool multiline, const QString &hashComment) override;
50  void hashComment(const QString &comment) override;
51  void bracketComment(const QString &comment) override;
52 
53  void lineFeed() override;
54  void error(const KSieve::Error &error) override;
55  void finished() override;
56 
57  QString result() const;
58  QString error() const;
59  bool hasError() const;
60 
61  void clear();
62 
63 private:
64  void initialize(int indent = 0);
65  void write(const QString &key, const QString &value);
66  void write(const QString &key, const QString &qualifiedName, const QString &attribute, const QString &value);
67 
68  QXmlStreamWriter *mStream = nullptr;
69  QString mResult;
70  QString mError;
71 };
72 }
73 #endif
KCRASH_EXPORT void initialize()
KGuiItem clear()
void error(QWidget *parent, const QString &text, const QString &caption=QString(), Options options=Notify)
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Sun May 31 2020 22:46:48 by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.