From 091fb1fc7d9975032f5a1047b611211c0a9c0de5 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Tue, 27 Oct 2020 12:03:36 +0200 Subject: [PATCH] QmlDesigner: Fix stall at asset import icon creation ProcessFinished signaling has changed so that sender() returns nullptr, so changed the processFinished handling to simply remove all finished processes. Change-Id: I6c1d37737cf7fd15840daa1c7d73f2620fab1102 Fixes: QDS-3004 Reviewed-by: Mahmoud Badri Reviewed-by: Thomas Hartmann --- .../itemlibrary/itemlibraryassetimporter.cpp | 26 +++++++++---------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetimporter.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetimporter.cpp index ca00b66f462..cfb946a95df 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetimporter.cpp +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetimporter.cpp @@ -184,20 +184,18 @@ void ItemLibraryAssetImporter::processFinished(int exitCode, QProcess::ExitStatu Q_UNUSED(exitCode) Q_UNUSED(exitStatus) - auto process = qobject_cast(sender()); - if (process) { - m_qmlPuppetProcesses.erase( - std::remove_if(m_qmlPuppetProcesses.begin(), - m_qmlPuppetProcesses.end(), - [&](const auto &entry) { return entry.get() == process; })); - const QString progressTitle = tr("Generating icons."); - if (m_qmlPuppetProcesses.empty()) { - notifyProgress(100, progressTitle); - finalizeQuick3DImport(); - } else { - notifyProgress(int(100. * (1. - double(m_qmlPuppetCount) / double(m_qmlPuppetProcesses.size()))), - progressTitle); - } + m_qmlPuppetProcesses.erase( + std::remove_if(m_qmlPuppetProcesses.begin(), m_qmlPuppetProcesses.end(), [&](const auto &entry) { + return !entry || entry->state() == QProcess::NotRunning; + })); + + const QString progressTitle = tr("Generating icons."); + if (m_qmlPuppetProcesses.empty()) { + notifyProgress(100, progressTitle); + finalizeQuick3DImport(); + } else { + notifyProgress(int(100. * (1. - double(m_qmlPuppetCount) / double(m_qmlPuppetProcesses.size()))), + progressTitle); } }