Mercurial > trustbridge
view ui/installwrapper.h @ 282:d13d51f7a0e2
Merged
author | Sascha Wilde <wilde@intevation.de> |
---|---|
date | Wed, 02 Apr 2014 15:22:33 +0200 |
parents | 84ae353688e0 |
children | f23e0ccd5d14 |
line wrap: on
line source
#ifndef UI_INSTALLWRAPPER_H #define UI_INSTALLWRAPPER_H #include <QString> #include <QStringList> #include <QProcess> #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; #ifdef WIN32 SHELLEXECUTEINFOW mExecInfo; #else QProcess cinstProc; #endif 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