From 608b1d83989313090b1f72b5a5a567c8674cd893 Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Fri, 7 Mar 2014 09:36:03 +0100 Subject: 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 --- src/libs/installer/packagemanagercore.cpp | 5 +---- 1 file changed, 1 insertion(+), 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 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 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 PackageManagerCore::execute(const QString &program, const QStrin process.closeWriteChannel(); } - if (process.state() != QProcessWrapper::NotRunning) - loop.exec(); + process.waitForFinished(-1); return QList() << QString::fromLatin1(process.readAllStandardOutput()) << process.exitCode(); } -- cgit v1.2.3