diff options
author | Maurice Kalinowski <maurice.kalinowski@nokia.com> | 2012-06-04 10:29:07 +0200 |
---|---|---|
committer | Tim Jenssen <tim.jenssen@nokia.com> | 2012-06-04 11:04:21 +0200 |
commit | ef8f5811e505eda57e83a46bc7d7b9b120c9fad8 (patch) | |
tree | bdeabc6d6d6b682efc7025ab55e03e8fd0d69d64 | |
parent | b29e28974f855ab89557e16504c7ad612d37db49 (diff) |
add working dir parameter
sometimes it is useful to launch a process with a specified
working directory. Only use this as an optional argument.
Change-Id: I4eedd9b27713b9bc284f1945e67e115b5615640b
Reviewed-by: Tim Jenssen <tim.jenssen@nokia.com>
-rw-r--r-- | src/libs/installer/packagemanagercore.cpp | 12 | ||||
-rw-r--r-- | src/libs/installer/packagemanagercore.h | 3 |
2 files changed, 11 insertions, 4 deletions
diff --git a/src/libs/installer/packagemanagercore.cpp b/src/libs/installer/packagemanagercore.cpp index 96fabdebe..39a8ad343 100644 --- a/src/libs/installer/packagemanagercore.cpp +++ b/src/libs/installer/packagemanagercore.cpp @@ -1201,17 +1201,23 @@ QList<QVariant> PackageManagerCore::execute(const QString &program, const QStrin \param program The program that should be executed. \param arguments Optional list of arguments. + \param workingDirectory Optional working directory of the forked process. \return If the command could not be executed, an false will be returned */ -bool PackageManagerCore::executeDetached(const QString &program, const QStringList &arguments) const +bool PackageManagerCore::executeDetached(const QString &program, const QStringList &arguments, + const QString &workingDirectory) const { QString adjustedProgram = replaceVariables(program); QStringList adjustedArguments; + QString adjustedWorkingDir = replaceVariables(workingDirectory); foreach (const QString &argument, arguments) adjustedArguments.append(replaceVariables(argument)); - qDebug() << "run application as detached process:" << adjustedProgram << adjustedArguments; - return QProcess::startDetached(adjustedProgram, adjustedArguments); + qDebug() << "run application as detached process:" << adjustedProgram << adjustedArguments << adjustedWorkingDir; + if (workingDirectory.isEmpty()) + return QProcess::startDetached(adjustedProgram, adjustedArguments); + else + return QProcess::startDetached(adjustedProgram, adjustedArguments, adjustedWorkingDir); } diff --git a/src/libs/installer/packagemanagercore.h b/src/libs/installer/packagemanagercore.h index b7dd7585e..55d5760fd 100644 --- a/src/libs/installer/packagemanagercore.h +++ b/src/libs/installer/packagemanagercore.h @@ -118,7 +118,8 @@ public: Q_INVOKABLE QList<QVariant> execute(const QString &program, const QStringList &arguments = QStringList(), const QString &stdIn = QString()) const; Q_INVOKABLE bool executeDetached(const QString &program, - const QStringList &arguments = QStringList()) const; + const QStringList &arguments = QStringList(), + const QString &workingDirectory = QString()) const; Q_INVOKABLE QString environmentVariable(const QString &name) const; Q_INVOKABLE bool performOperation(const QString &name, const QStringList &arguments); |