summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKai Koehne <kai.koehne@digia.com>2014-03-07 09:36:03 +0100
committerKai Koehne <kai.koehne@digia.com>2014-03-10 09:46:13 +0100
commit608b1d83989313090b1f72b5a5a567c8674cd893 (patch)
tree2f7fe98450a97a8e8dd06334091f32d73f46120a
parentd851857f2189195b5fccee371c746ecd80096ed9 (diff)
Do not run event loop in installer.execute()
The event loop somehow breaks the script interface, e.g. attached UI files cannot be accessed any more ... This might let the UI block though. Task-number: QTIFW-464 Change-Id: Ia53cb355be75241ba343cf3abc6fe42bec5be696 Reviewed-by: Niels Weber <niels.weber@digia.com>
-rw-r--r--src/libs/installer/packagemanagercore.cpp5
1 files changed, 1 insertions, 4 deletions
diff --git a/src/libs/installer/packagemanagercore.cpp b/src/libs/installer/packagemanagercore.cpp
index 4ec5f261f..b90435993 100644
--- a/src/libs/installer/packagemanagercore.cpp
+++ b/src/libs/installer/packagemanagercore.cpp
@@ -1538,7 +1538,6 @@ bool PackageManagerCore::localInstallerBinaryUsed()
QList<QVariant> PackageManagerCore::execute(const QString &program, const QStringList &arguments,
const QString &stdIn) const
{
- QEventLoop loop;
QProcessWrapper process;
QString adjustedProgram = replaceVariables(program);
@@ -1547,7 +1546,6 @@ QList<QVariant> PackageManagerCore::execute(const QString &program, const QStrin
adjustedArguments.append(replaceVariables(argument));
QString adjustedStdIn = replaceVariables(stdIn);
- connect(&process, SIGNAL(finished(int, QProcess::ExitStatus)), &loop, SLOT(quit()));
process.start(adjustedProgram, adjustedArguments,
adjustedStdIn.isNull() ? QIODevice::ReadOnly : QIODevice::ReadWrite);
@@ -1559,8 +1557,7 @@ QList<QVariant> PackageManagerCore::execute(const QString &program, const QStrin
process.closeWriteChannel();
}
- if (process.state() != QProcessWrapper::NotRunning)
- loop.exec();
+ process.waitForFinished(-1);
return QList<QVariant>() << QString::fromLatin1(process.readAllStandardOutput()) << process.exitCode();
}