diff options
Diffstat (limited to 'src/libs/installer/elevatedexecuteoperation.cpp')
-rw-r--r-- | src/libs/installer/elevatedexecuteoperation.cpp | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/src/libs/installer/elevatedexecuteoperation.cpp b/src/libs/installer/elevatedexecuteoperation.cpp index 0aa8c101d..d797f2077 100644 --- a/src/libs/installer/elevatedexecuteoperation.cpp +++ b/src/libs/installer/elevatedexecuteoperation.cpp @@ -54,7 +54,9 @@ class ElevatedExecuteOperation::Private { public: explicit Private(ElevatedExecuteOperation *qq) - : q(qq), process(0), showStandardError(false) + : q(qq) + , process(0) + , showStandardError(false) { } @@ -202,7 +204,8 @@ bool ElevatedExecuteOperation::Private::run(const QStringList &arguments) if (!success) { q->setError(UserDefinedError); //TODO: pass errorString() through the wrapper */ - q->setErrorString(tr("Execution failed: Could not start: \"%1\"").arg(callstr)); + q->setErrorString(tr("Execution failed: Could not start: \"%1\"(%2)").arg(callstr, + process->errorString())); returnValue = false; } @@ -229,6 +232,12 @@ bool ElevatedExecuteOperation::Private::run(const QStringList &arguments) } else { q->setErrorString(customErrorMessage); } + + QByteArray standardErrorOutput = process->readAllStandardError(); + // in error case it would be useful to see something in verbose output + if (!standardErrorOutput.isEmpty()) + qWarning() << standardErrorOutput; + returnValue = false; } @@ -257,7 +266,10 @@ void ElevatedExecuteOperation::Private::readProcessOutput() } const QByteArray output = process->readAll(); if (!output.isEmpty()) { - qDebug() << output; + if (q->error() == UserDefinedError) + qWarning() << output; + else + qDebug() << output; emit q->outputTextChanged(QString::fromLocal8Bit(output)); } } |