diff --git a/src/modules/welcome/checker/CheckerContainer.cpp b/src/modules/welcome/checker/CheckerContainer.cpp index dd5a6680f6..1c0c28f5c3 100644 --- a/src/modules/welcome/checker/CheckerContainer.cpp +++ b/src/modules/welcome/checker/CheckerContainer.cpp @@ -71,7 +71,11 @@ CheckerContainer::requirementsComplete( bool ok ) m_waitingWidget->deleteLater(); m_waitingWidget = nullptr; // Don't delete in destructor } - if ( !m_checkerWidget ) + if ( m_checkerWidget ) + { + m_checkerWidget->requirementsComplete(); + } + else { m_checkerWidget = new ResultsListWidget( m_config, this ); m_checkerWidget->setObjectName( "requirementsChecker" ); diff --git a/src/modules/welcome/checker/ResultsListWidget.cpp b/src/modules/welcome/checker/ResultsListWidget.cpp index f077254842..b3371cee13 100644 --- a/src/modules/welcome/checker/ResultsListWidget.cpp +++ b/src/modules/welcome/checker/ResultsListWidget.cpp @@ -67,18 +67,25 @@ ResultsListWidget::ResultsListWidget( Config* config, QWidget* parent ) } void -ResultsListWidget::requirementsChanged() +ResultsListWidget::requirementsComplete() { - // Check that all are satisfied (gives warnings if not) and - // all *mandatory* entries are satisfied (gives errors if not). - + // Check that the satisfaction of the requirements: + // - if everything is satisfied, show the welcome image + // - otherwise, if all the mandatory ones are satisfied, + // we won't be re-checking (see ModuleManager::checkRequirements) + // so hide the countdown, + // - otherwise we have unsatisfied mandatory requirements, + // so keep the countdown and the list of problems. const bool requirementsSatisfied = m_config->requirementsModel()->satisfiedRequirements(); + const bool mandatoryRequirementsSatisfied = m_config->requirementsModel()->satisfiedMandatory(); - if ( requirementsSatisfied ) + if ( mandatoryRequirementsSatisfied ) { m_countdown->stop(); m_countdown->hide(); - + } + if ( requirementsSatisfied ) + { delete m_centralWidget; m_centralWidget = nullptr; diff --git a/src/modules/welcome/checker/ResultsListWidget.h b/src/modules/welcome/checker/ResultsListWidget.h index 3bbed1090c..1f2f630fb3 100644 --- a/src/modules/welcome/checker/ResultsListWidget.h +++ b/src/modules/welcome/checker/ResultsListWidget.h @@ -26,10 +26,10 @@ class ResultsListWidget : public QWidget public: explicit ResultsListWidget( Config* config, QWidget* parent ); -private: - /// @brief The model of requirements changed - void requirementsChanged(); + /// @brief The model of requirements has finished a round of checking + void requirementsComplete(); +private: Config* m_config = nullptr; // UI parts, which need updating when the model changes