Mercurial > trustbridge
view ui/installwrapper.h @ 289:9ad00a3255f4
Change cinst from stdin input to use arguments.
As we have to execute this process on Windows over the
shell a stdin / stdout communication is not really possible
without some major hacks. So you now have to supply an
instructions file and the path to the certificatelist as arguments when
this process is called
author | Andre Heinecke <aheinecke@intevation.de> |
---|---|
date | Wed, 02 Apr 2014 13:52:02 +0000 |
parents | f23e0ccd5d14 |
children | dc4efb0a70cb |
line wrap: on
line source
#ifndef UI_INSTALLWRAPPER_H #define UI_INSTALLWRAPPER_H #include <QString> #include <QStringList> #include <QThread> #include "certificate.h" /** @file installwrapper.h * @brief Wrapper around the call to the updated process */ /** @brief wrapper around installer process * * This wrapper is mostly needed because QProcess executes * a process on Windows directly with CreateProcess and * thus can not be used to elevate the Process. * * On Windows this class uses ShellExecuteExW to control * the child process. On Linux systems QProcess is used. * * It subclasses QThread so the installation can be done * asynchronusly. */ class InstallWrapper : public QThread { Q_OBJECT public: /** * @brief Construct an installwrapper for a certificateList * * The install wrapper will start the cinst process to execute * the specified instructions with the provided certificatelist. * * The cinst executable is expected to be in the same directory * as the current application. * * @param[in] parent the parent object. * @param[in] listFileName the absolute path to the certificatelist. * @param[in] instructions a list of instructions to execute. */ InstallWrapper(QObject* parent, const QString& path, const QStringList& instructions); private: const QString mCertListFile; const QStringList mInstructions; protected: void run(); Q_SIGNALS: /** * @brief An error happened * * @param[out] message: A localized message to show. Can be empty. */ void error(const QString &message); }; #endif // UI_INSTALLWRAPPER_H