queuehtmlwriter.h 2.22 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
/*
   Copyright (c) 2015 Sandro Knauß <sknauss@kde.org>

   This library is free software; you can redistribute it and/or modify it
   under the terms of the GNU Library General Public License as published by
   the Free Software Foundation; either version 2 of the License, or (at your
   option) any later version.

   This library is distributed in the hope that it will be useful, but WITHOUT
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public
   License for more details.

   You should have received a copy of the GNU Library General Public License
   along with this library; see the file COPYING.LIB.  If not, write to the
   Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
   02110-1301, USA.
*/

20 21
#ifndef __MIMETREEPARSER_QUEUEHTMLWRITER_H__
#define __MIMETREEPARSER_QUEUEHTMLWRITER_H__
22

Laurent Montel's avatar
Laurent Montel committed
23
#include "mimetreeparser_export.h"
Sandro Knauß's avatar
Sandro Knauß committed
24
#include "mimetreeparser/htmlwriter.h"
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49

#include<QVector>
#include<QVariant>

class QString;
class QByteArray;

namespace MessageViewer
{
/**
\brief Cache HTML output and not write them directy.

This class is needed to make it possible to first process the mime tree and
afterwards render the HTML.

Please do not use this class - it is only added to make it possible to slowly
move ObjectTreeParser to a process fist / render later.

*/
struct Command {
    enum { Begin, End, Reset, Write, Queue, Flush, EmbedPart, ExtraHead } type;
    QString s;
    QByteArray b;
};

Laurent Montel's avatar
Laurent Montel committed
50
class MIMETREEPARSER_DEPRECATED_EXPORT QueueHtmlWriter : public HtmlWriter
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
{
public:
    explicit QueueHtmlWriter(MessageViewer::HtmlWriter *base);
    virtual ~QueueHtmlWriter();

    void begin(const QString &cssDefs) Q_DECL_OVERRIDE;
    void end() Q_DECL_OVERRIDE;
    void reset() Q_DECL_OVERRIDE;
    void write(const QString &str) Q_DECL_OVERRIDE;
    void queue(const QString &str) Q_DECL_OVERRIDE;
    void flush() Q_DECL_OVERRIDE;
    void embedPart(const QByteArray &contentId, const QString &url) Q_DECL_OVERRIDE;
    void extraHead(const QString &str) Q_DECL_OVERRIDE;

    void replay();

private:
    HtmlWriter *mBase;
    QVector<Command> mQueue;
};

} // namespace MessageViewer

74
#endif // __MIMETREEPARSER_QUEUEHTMLWRITER_H__