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();