diff --git a/src/libcalamares/modulesystem/RequirementsModel.h b/src/libcalamares/modulesystem/RequirementsModel.h index b288b9d49..7722707a3 100644 --- a/src/libcalamares/modulesystem/RequirementsModel.h +++ b/src/libcalamares/modulesystem/RequirementsModel.h @@ -59,11 +59,6 @@ public: bool satisfiedRequirements() const { return m_satisfiedRequirements; } bool satisfiedMandatory() const { return m_satisfiedMandatory; } - const Calamares::RequirementEntry& getEntry( int index ) const - { - return m_requirements.at( index ); - } - void setRequirementsList( const Calamares::RequirementsList& requirements ); QVariant data( const QModelIndex& index, int role ) const override; diff --git a/src/modules/welcome/checker/ResultsListWidget.cpp b/src/modules/welcome/checker/ResultsListWidget.cpp index 2554f907b..afde9f08d 100644 --- a/src/modules/welcome/checker/ResultsListWidget.cpp +++ b/src/modules/welcome/checker/ResultsListWidget.cpp @@ -48,27 +48,29 @@ static void createResultWidgets( QLayout* layout, QList< ResultWidget* >& resultWidgets, const Calamares::RequirementsModel& model, - std::function< bool( const Calamares::RequirementEntry& ) > predicate ) + std::function< bool( const Calamares::RequirementsModel&, QModelIndex ) > predicate ) { resultWidgets.clear(); resultWidgets.reserve( model.count() ); for ( auto i = 0; i < model.count(); i++ ) { - const auto& entry = model.getEntry( i ); - if ( !predicate( entry ) ) + const auto& index = model.index( i ); + if ( !predicate( model, index ) ) { resultWidgets.append( nullptr ); continue; } - ResultWidget* ciw = new ResultWidget( entry.satisfied, entry.mandatory ); + const bool is_satisfied = model.data( index, Calamares::RequirementsModel::Satisfied ).toBool(); + const bool is_mandatory = model.data( index, Calamares::RequirementsModel::Mandatory ).toBool(); + ResultWidget* ciw = new ResultWidget( is_satisfied, is_mandatory ); layout->addWidget( ciw ); ciw->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Preferred ); ciw->setAutoFillBackground( true ); QPalette pal( ciw->palette() ); QColor bgColor = pal.window().color(); - int bgHue = ( entry.satisfied ) ? bgColor.hue() : ( entry.mandatory ) ? 0 : 60; + int bgHue = ( is_satisfied ) ? bgColor.hue() : ( is_mandatory ) ? 0 : 60; bgColor.setHsv( bgHue, 64, bgColor.value() ); pal.setColor( QPalette::Window, bgColor ); ciw->setPalette( pal ); @@ -114,7 +116,9 @@ ResultsListDialog::ResultsListDialog( const Calamares::RequirementsModel& model, m_title = new QLabel( this ); createResultWidgets( - entriesLayout, m_resultWidgets, model, []( const Calamares::RequirementEntry& e ) { return e.hasDetails(); } ); + entriesLayout, m_resultWidgets, model, []( const Calamares::RequirementsModel& m, QModelIndex i ) { + return m.data( i, Calamares::RequirementsModel::HasDetails ).toBool(); + } ); QDialogButtonBox* buttonBox = new QDialogButtonBox( QDialogButtonBox::Close, Qt::Horizontal, this ); @@ -130,7 +134,7 @@ ResultsListDialog::ResultsListDialog( const Calamares::RequirementsModel& model, retranslate(); // Do it now to fill in the texts } -ResultsListDialog::~ResultsListDialog() { } +ResultsListDialog::~ResultsListDialog() {} void ResultsListDialog::retranslate() @@ -140,10 +144,10 @@ ResultsListDialog::retranslate() for ( auto i = 0; i < m_model.count(); i++ ) { - const auto& entry = m_model.getEntry( i ); if ( m_resultWidgets[ i ] ) { - m_resultWidgets[ i ]->setText( entry.enumerationText() ); + m_resultWidgets[ i ]->setText( + m_model.data( m_model.index( i ), Calamares::RequirementsModel::Details ).toString() ); } } } @@ -180,7 +184,9 @@ ResultsListWidget::ResultsListWidget( const Calamares::RequirementsModel& model, // all *mandatory* entries are satisfied (gives errors if not). const bool requirementsSatisfied = m_model.satisfiedRequirements(); - auto isUnSatisfied = []( const Calamares::RequirementEntry& e ) { return !e.satisfied; }; + auto isUnSatisfied = []( const Calamares::RequirementsModel& m, QModelIndex i ) { + return !m.data( i, Calamares::RequirementsModel::Satisfied ).toBool(); + }; createResultWidgets( entriesLayout, m_resultWidgets, model, isUnSatisfied ); @@ -240,10 +246,10 @@ ResultsListWidget::retranslate() { for ( auto i = 0; i < m_model.count(); i++ ) { - const auto& entry = m_model.getEntry( i ); if ( m_resultWidgets[ i ] ) { - m_resultWidgets[ i ]->setText( entry.negatedText() ); + m_resultWidgets[ i ]->setText( + m_model.data( m_model.index( i ), Calamares::RequirementsModel::NegatedText ).toString() ); } }