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 <mahmoud.badri@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
Miikka Heikkinen
2020-10-27 12:03:36 +02:00
parent 9da8a3f540
commit 091fb1fc7d

View File

@@ -184,20 +184,18 @@ void ItemLibraryAssetImporter::processFinished(int exitCode, QProcess::ExitStatu
Q_UNUSED(exitCode) Q_UNUSED(exitCode)
Q_UNUSED(exitStatus) Q_UNUSED(exitStatus)
auto process = qobject_cast<QProcess *>(sender()); m_qmlPuppetProcesses.erase(
if (process) { std::remove_if(m_qmlPuppetProcesses.begin(), m_qmlPuppetProcesses.end(), [&](const auto &entry) {
m_qmlPuppetProcesses.erase( return !entry || entry->state() == QProcess::NotRunning;
std::remove_if(m_qmlPuppetProcesses.begin(), }));
m_qmlPuppetProcesses.end(),
[&](const auto &entry) { return entry.get() == process; })); const QString progressTitle = tr("Generating icons.");
const QString progressTitle = tr("Generating icons."); if (m_qmlPuppetProcesses.empty()) {
if (m_qmlPuppetProcesses.empty()) { notifyProgress(100, progressTitle);
notifyProgress(100, progressTitle); finalizeQuick3DImport();
finalizeQuick3DImport(); } else {
} else { notifyProgress(int(100. * (1. - double(m_qmlPuppetCount) / double(m_qmlPuppetProcesses.size()))),
notifyProgress(int(100. * (1. - double(m_qmlPuppetCount) / double(m_qmlPuppetProcesses.size()))), progressTitle);
progressTitle);
}
} }
} }