view src/converter.h @ 45:87814487eb18

Added tag 1.0 for changeset aa47b8e4f807
author Andre Heinecke <andre.heinecke@intevation.de>
date Mon, 30 May 2016 13:48:44 +0200
parents 5354cbda7188
children
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 <QList>

#include "xlsxformat.h"

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

/** @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 outputs the files to create.
     */
    Converter(const QString &input, const QStringList &outputs,
              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, QList<QFile*> outputs);
    void run();

    QString mInput;
    QStringList mOutputs;
    QStringList mErrors;
    QString mTitle;

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

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