diff --git a/src/modules/packagechooser/Config.cpp b/src/modules/packagechooser/Config.cpp index 6676215978a73e662ffa9824a894e69a518ae4e5..db7086c4340f20339c2051e0b43ca36b1afb1a7d 100644 --- a/src/modules/packagechooser/Config.cpp +++ b/src/modules/packagechooser/Config.cpp @@ -321,22 +321,28 @@ Config::setConfigurationMap( const QVariantMap& configurationMap ) cDebug() << "Using module ID" << m_defaultId; } + m_defaultModelIndex = QModelIndexList(); if ( configurationMap.contains( "items" ) ) { fillModel( m_model, configurationMap.value( "items" ).toList() ); - QString default_item_id = CalamaresUtils::getString( configurationMap, "default" ); - if ( !default_item_id.isEmpty() ) + QStringList default_item_ids = CalamaresUtils::getStringList( configurationMap, "default" ); + if ( default_item_ids.isEmpty() ) { + const QString& default_item_id = CalamaresUtils::getString( configurationMap, "default" ); + if ( !default_item_id.isEmpty() ) { + default_item_ids.push_back( default_item_id ); + } + } + if ( !default_item_ids.isEmpty() ) { for ( int item_n = 0; item_n < m_model->packageCount(); ++item_n ) { QModelIndex item_idx = m_model->index( item_n, 0 ); QVariant item_id = m_model->data( item_idx, PackageListModel::IdRole ); - if ( item_id.toString() == default_item_id ) + if ( default_item_ids.contains( item_id.toString() ) ) { - m_defaultModelIndex = item_idx; - break; + m_defaultModelIndex.push_back( item_idx ); } } } diff --git a/src/modules/packagechooser/Config.h b/src/modules/packagechooser/Config.h index d1b783a8d0299783e73cb49e6f0355a925daf0bc..b1ca882066b625aefa10daf331dd68578fc07d76 100644 --- a/src/modules/packagechooser/Config.h +++ b/src/modules/packagechooser/Config.h @@ -71,7 +71,7 @@ public: PackageChooserMode mode() const { return m_mode; } PackageListModel* model() const { return m_model; } - QModelIndex defaultSelectionIndex() const { return m_defaultModelIndex; } + QModelIndexList defaultSelectionIndex() const { return m_defaultModelIndex; } /** @brief Returns an "introductory package" which describes packagechooser * @@ -107,7 +107,7 @@ signals: private: PackageListModel* m_model = nullptr; - QModelIndex m_defaultModelIndex; + QModelIndexList m_defaultModelIndex; /// Selection mode for this module PackageChooserMode m_mode = PackageChooserMode::Optional; diff --git a/src/modules/packagechooser/PackageChooserViewStep.cpp b/src/modules/packagechooser/PackageChooserViewStep.cpp index e3b27df5c70620ab7a12449e9b19c5c3b2b30557..620c45d648d52765359efbeccb84e06bcdc6d246 100644 --- a/src/modules/packagechooser/PackageChooserViewStep.cpp +++ b/src/modules/packagechooser/PackageChooserViewStep.cpp @@ -114,7 +114,9 @@ PackageChooserViewStep::onActivate() { if ( !m_widget->hasSelection() ) { - m_widget->setSelection( m_config->defaultSelectionIndex() ); + for ( const auto& item : m_config->defaultSelectionIndex() ) { + m_widget->setSelection( item ); + } } }