diff --git a/src/libcalamares/modulesystem/RequirementsChecker.cpp b/src/libcalamares/modulesystem/RequirementsChecker.cpp
index 6617fa6d5..9fa9a72f8 100644
--- a/src/libcalamares/modulesystem/RequirementsChecker.cpp
+++ b/src/libcalamares/modulesystem/RequirementsChecker.cpp
@@ -52,18 +52,6 @@ registerMetatypes()
}
}
-static void
-check( Module* const& m, RequirementsChecker* c )
-{
- RequirementsList l = m->checkRequirements();
- if ( l.count() > 0 )
- {
- c->addCheckedRequirements( l );
- }
- c->requirementsProgress(
- QObject::tr( "Requirements checking for module %1 is complete." ).arg( m->name() ) );
-}
-
RequirementsChecker::RequirementsChecker( QVector< Module* > modules, RequirementsModel* model, QObject* parent )
: QObject( parent )
, m_modules( std::move( modules ) )
@@ -88,7 +76,7 @@ RequirementsChecker::run()
for ( const auto& module : m_modules )
{
Watcher* watcher = new Watcher( this );
- watcher->setFuture( QtConcurrent::run( check, module, this ) );
+ watcher->setFuture( QtConcurrent::run( this, &RequirementsChecker::addCheckedRequirements, module ) );
watcher->setObjectName( module->name() );
m_watchers.append( watcher );
connect( watcher, &Watcher::finished, this, &RequirementsChecker::finished );
@@ -122,10 +110,17 @@ RequirementsChecker::finished()
}
void
-RequirementsChecker::addCheckedRequirements( RequirementsList l )
+RequirementsChecker::addCheckedRequirements( Module* m )
{
- m_model->addRequirementsList( l );
- cDebug() << "Added" << l.count() << "requirement results";
+ RequirementsList l = m->checkRequirements();
+ cDebug() << "Got" << l.count() << "requirement results from" << m->name();
+ if ( l.count() > 0 )
+ {
+ m_model->addRequirementsList( l );
+ }
+
+ requirementsProgress(
+ tr( "Requirements checking for module %1 is complete." ).arg( m->name() ) );
emit requirementsResult( l );
}
diff --git a/src/libcalamares/modulesystem/RequirementsChecker.h b/src/libcalamares/modulesystem/RequirementsChecker.h
index b4651be21..45aa4fc4f 100644
--- a/src/libcalamares/modulesystem/RequirementsChecker.h
+++ b/src/libcalamares/modulesystem/RequirementsChecker.h
@@ -49,7 +49,7 @@ public Q_SLOTS:
void run();
/// @brief Called when requirements are reported by a module
- void addCheckedRequirements( RequirementsList );
+ void addCheckedRequirements( Module* );
/// @brief Called when all requirements have been checked
void finished();