From 0d7460996ae92c59f78cd2b5ccac43a1bf8869b2 Mon Sep 17 00:00:00 2001 From: Silarn Date: Fri, 4 May 2018 11:34:49 -0500 Subject: Further offload setValue to avoid threading issues --- src/installationmanager.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/installationmanager.cpp') diff --git a/src/installationmanager.cpp b/src/installationmanager.cpp index 4b433899..a99a07e1 100644 --- a/src/installationmanager.cpp +++ b/src/installationmanager.cpp @@ -444,7 +444,7 @@ void InstallationManager::updateProgressFile(QString const &fileName) void InstallationManager::doProgressUpdate(float percentage) { if (m_InstallationProgress != nullptr) { - m_InstallationProgress->setValue(static_cast(percentage * 100.0)); + QMetaObject::invokeMethod(this, "setProgressValue", Qt::QueuedConnection, Q_ARG(int, static_cast(percentage * 100.0))); if (m_InstallationProgress->wasCanceled()) { m_ArchiveHandler->cancel(); @@ -453,6 +453,13 @@ void InstallationManager::doProgressUpdate(float percentage) } } +void InstallationManager::setProgressValue(int percentage) +{ + if (m_InstallationProgress != nullptr) { + m_InstallationProgress->setValue(percentage); + } +} + void InstallationManager::doProgressFileUpdate(QString const fileName) { if (m_InstallationProgress != nullptr) { -- cgit v1.3.1