diff options
author | Kai Koehne <kai.koehne@digia.com> | 2014-03-07 09:36:03 +0100 |
---|---|---|
committer | Kai Koehne <kai.koehne@digia.com> | 2014-03-10 09:46:13 +0100 |
commit | 608b1d83989313090b1f72b5a5a567c8674cd893 (patch) | |
tree | 2f7fe98450a97a8e8dd06334091f32d73f46120a | |
parent | d851857f2189195b5fccee371c746ecd80096ed9 (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.cpp | 5 |
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(); } |