view src/converter.h @ 23:927794e3cc52

Add HTML output and some pdf support PDF does not look well as the CSS used for HTML is not supported.
author Andre Heinecke <andre.heinecke@intevation.de>
date Mon, 11 Apr 2016 11:00:40 +0200
parents a10425e7ef98
children e5c5ebfa4205
line wrap: on
line source
#ifndef CONVERTER_H
#define CONVERTER_H
/* Copyright (C) 2016 by ETH Zürich
 * Software engineering by Intevation GmbH
 *
 * This file is Free Software under the GNU GPL (v>=2)
 * and comes with ABSOLUTELY NO WARRANTY!
 * See LICENSE.txt for details.
 */

#include <QThread>
#include <QString>
#include <QStringList>
#include <QTextStream>
#include <QFile>

#include "xlsxformat.h"

/** @file Declaration of the Converter class.
 */

/**
 * @enum ConvertFormat
 * @brief Possible output format values.
 */
enum ConvertFormat {
    /*! XLSX (default). */
    Format_XLSX,
    /*! PDF */
    Format_PDF,
    /*! HTML */
    Format_HTML,
};

/** @brief Base class of Convert operations.
 *
 * Set up an instance of this using the ctor and according setters and
 * start it.
 */
class Converter : public QThread
{
    Q_OBJECT

public:
    /** Construct a new Converter object.
     *
     * If input is empty stdin is used. If output
     * is empty stdout is used.
     *
     * @param input input filename.
     * @param output output filename.
     * @param format the format of this.
     */
    Converter(const QString &input, const QString &output,
              ConvertFormat fmt = Format_XLSX,
              const QString &title = QString());

    /** Check for errors
     *
     * @returns Empty stringlist on success. Translated errors otherwise.*/
    const QStringList & errors() {return mErrors;}

protected:
    void convertToXSLX(QTextStream &instream, QFile &output);
    void run();

    QString mInput, mOutput;
    ConvertFormat mFmt;
    QStringList mErrors;
    QString mTitle;

    QXlsx::Format mTitleFmt,
                  mQuestionFmt,
                  mAnswerChoiceFmt,
                  mAnswerTextFmt,
                  mFreeTextFmt,
                  mChoiceTextFmt,
                  mChoiceVotesFmt;
    QString mTitleStyle,
            mQuestionStyle,
            mAnswerChoiceStyle,
            mAnswerTextStyle,
            mFreeTextStyle,
            mChoiceTextStyle,
            mChoiceVotesStyle;
};

#endif // CONVERTER_H
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)