andre@3: #ifndef CONVERTER_H andre@3: #define CONVERTER_H andre@3: /* Copyright (C) 2016 by ETH Zürich andre@3: * Software engineering by Intevation GmbH andre@3: * andre@3: * This file is Free Software under the GNU GPL (v>=2) andre@3: * and comes with ABSOLUTELY NO WARRANTY! andre@3: * See LICENSE.txt for details. andre@3: */ andre@3: andre@3: #include andre@3: #include andre@3: #include andre@3: #include andre@3: #include andre@3: andre@3: #include "xlsxformat.h" andre@3: andre@3: /** @file Declaration of the Converter class. andre@3: */ andre@3: andre@3: /** andre@3: * @enum ConvertFormat andre@3: * @brief Possible output format values. andre@3: */ andre@3: enum ConvertFormat { andre@3: /*! XLSX (default). */ andre@3: Format_XLSX, andre@3: /*! PDF */ andre@3: Format_PDF andre@3: }; andre@3: andre@3: /** @brief Base class of Convert operations. andre@3: * andre@3: * Set up an instance of this using the ctor and according setters and andre@3: * start it. andre@3: */ andre@3: class Converter : public QThread andre@3: { andre@3: Q_OBJECT andre@3: andre@3: public: andre@3: /** Construct a new Converter object. andre@3: * andre@3: * If input is empty stdin is used. If output andre@3: * is empty stdout is used. andre@3: * andre@3: * @param input input filename. andre@3: * @param output output filename. andre@3: * @param format the format of this. andre@3: */ andre@3: Converter(const QString &input, const QString &output, andre@3: ConvertFormat fmt = Format_XLSX, andre@3: const QString &title = QString()); andre@3: andre@3: /** Check for errors andre@3: * andre@3: * @returns Empty stringlist on success. Translated errors otherwise.*/ andre@3: const QStringList & errors() {return mErrors;} andre@3: andre@3: protected: andre@3: void convertToXSLX(QTextStream &instream, QFile &output); andre@3: void run(); andre@3: andre@3: QString mInput, mOutput; andre@3: ConvertFormat mFmt; andre@3: QStringList mErrors; andre@3: QString mTitle; andre@3: andre@3: QXlsx::Format mTitleFmt, andre@3: mQuestionFmt, andre@3: mAnswerChoiceFmt, andre@3: mAnswerTextFmt, andre@3: mFreeTextFmt, andre@3: mChoiceTextFmt, andre@3: mChoiceVotesFmt; andre@3: }; andre@3: andre@3: #endif // CONVERTER_H