Skip to content
Snippets Groups Projects
Verified Commit ad60a5e4 authored by Lars Frost's avatar Lars Frost
Browse files

allow multiple default options

parent 5f561b63
No related branches found
No related tags found
No related merge requests found
...@@ -321,22 +321,28 @@ Config::setConfigurationMap( const QVariantMap& configurationMap ) ...@@ -321,22 +321,28 @@ Config::setConfigurationMap( const QVariantMap& configurationMap )
cDebug() << "Using module ID" << m_defaultId; cDebug() << "Using module ID" << m_defaultId;
} }
m_defaultModelIndex = QModelIndexList();
if ( configurationMap.contains( "items" ) ) if ( configurationMap.contains( "items" ) )
{ {
fillModel( m_model, configurationMap.value( "items" ).toList() ); fillModel( m_model, configurationMap.value( "items" ).toList() );
QString default_item_id = CalamaresUtils::getString( configurationMap, "default" ); QStringList default_item_ids = CalamaresUtils::getStringList( configurationMap, "default" );
if ( !default_item_id.isEmpty() ) 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 ) for ( int item_n = 0; item_n < m_model->packageCount(); ++item_n )
{ {
QModelIndex item_idx = m_model->index( item_n, 0 ); QModelIndex item_idx = m_model->index( item_n, 0 );
QVariant item_id = m_model->data( item_idx, PackageListModel::IdRole ); 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; m_defaultModelIndex.push_back( item_idx );
break;
} }
} }
} }
......
...@@ -71,7 +71,7 @@ public: ...@@ -71,7 +71,7 @@ public:
PackageChooserMode mode() const { return m_mode; } PackageChooserMode mode() const { return m_mode; }
PackageListModel* model() const { return m_model; } 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 /** @brief Returns an "introductory package" which describes packagechooser
* *
...@@ -107,7 +107,7 @@ signals: ...@@ -107,7 +107,7 @@ signals:
private: private:
PackageListModel* m_model = nullptr; PackageListModel* m_model = nullptr;
QModelIndex m_defaultModelIndex; QModelIndexList m_defaultModelIndex;
/// Selection mode for this module /// Selection mode for this module
PackageChooserMode m_mode = PackageChooserMode::Optional; PackageChooserMode m_mode = PackageChooserMode::Optional;
......
...@@ -114,7 +114,9 @@ PackageChooserViewStep::onActivate() ...@@ -114,7 +114,9 @@ PackageChooserViewStep::onActivate()
{ {
if ( !m_widget->hasSelection() ) if ( !m_widget->hasSelection() )
{ {
m_widget->setSelection( m_config->defaultSelectionIndex() ); for ( const auto& item : m_config->defaultSelectionIndex() ) {
m_widget->setSelection( item );
}
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment